$firstDayOfWeek = (int)(new DateTime('first day of this month'))->format('N'); // номер дня недели (от 1=пнд до 7=вск) первого дня месяца
$daysInMonth = (int)(new DateTime('last day of this month'))->format('j'); // количество дней в месяце
$lastDayOfWeek = (int)$firstDayOfWeek + ($daysInMonth % 28); // номер дня недели (от 1=пнд до 10!) последнего дня месяца
echo 4 + (int)($firstDayOfWeek <= 5 && $lastDayOfWeek >= 5); // 4 полных недели есть в каждом месяце. И в некоторых еще будет пятая пятница, если месяц начинается <= пятницы, а заканчивается >=.
В чем причина того, что в пакетах все версии PHP идут без ZTS?
Зачем этот геморрой с исходниками?
sudo add-apt-repository ppa:ondrej/php-zts
sudo apt update
sudo apt-get install php7.1-zts
require ('inc/db.php');
// Закрываем соединение
mysqli_close($connect);
// ...
$this->categories = $this->getCategory();
// ...
public function getFullTree($parentId) {
if (!isset($this->categories[$parentId])) {
return [];
}
$tree = [];
foreach($this->categories[$parentId] as $category) {
$tree[$category->id] = [
'name' => $category->name,
'children' => $this->getFullTree($category->id),
];
}
return $tree;
}
// ...
$tree = $this->getFullTree(0);