PHP версия 7.4 е последната версия от серията 7.x, преди следващата основна версия PHP 8.0.
PHP 7.4 се поддържа на всички сървъри при СуперХостинг.БГ.
В PHP 7.4 има много поправки, подобрения в синтаксиса на езика и оптимизации за по-добра производителност, които вече се приемат много положително от уеб разработчиците. В следващите редове ще Ви разкажем за най-интересните от тях.
Typed properties
Досега на свойствата (properties) на даден клас не можеше да се задава тип. От PHP 7.4 вече може. Това е голямо допълнение след версия 7.0, в която може да се указват както типовете на параметрите на дадена функция, така и на върнатия резултат.
// Преди PHP 7.4:
class MyClass{
private $name;
private $size;
private $bar;
}
// PHP 7.4:
class MyClass{
private string $name;
private int $size;
private Foo $bar;
}
Типовете, които могат да се задават, са всички налични в PHP, с изключение на void и callable.
Arrow functions
Arrow functions са нов начин да се пишат анонимни функции.
Синтаксисът на една arrow функция е:
fn (параметри) => 'израз'
Анонимните функции нямат име и се вмъкват (inline) в кода. Те са „syntax sugar“ в езика – по-лесен и четим начин да се пишат closure функции. Характерно за тях е, че в arrow функцията разработчикът има достъп до всички променливи, дефинирани в областта, където тази функция се извиква.
Във всички PHP функции, които за параметър досега са приемали тип callable (т.е. параметърът да е функция), сега може да се използва arrow функция.
// Преди PHP 7.4:
$items = [1, 2, 3];
$multiplier = 2;
$doubledItems = array_map(function ($item) use ($multiplier) {
return $item * $multiplier;
}, $items);
// PHP 7.4:
$items = [1, 2, 3];
$multiplier = 2;
$doubledItems = array_map(fn($item) => $item * $multiplier, $items);
Unpacking inside arrays
Unpacking inside arrays също е улеснение в езика, особено при работа с масиви.
Spread операторът „…“ (три точки), добавен в PHP в предишни версии (5.6), вече може да се използва и при дефинирането и конструирането на масиви в PHP 7.4.
Пример 1:
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon']; // Резултат: ['banana', 'orange', 'apple', 'pear', 'watermelon'];
Пример 2:
$arr1 = [1, 2, 3];
$arr2 = [...$arr1]; //[1, 2, 3]
$arr3 = [0, ...$arr1]; //[0, 1, 2, 3]
$arr4 = array(...$arr1, ...$arr2, 111); //[1, 2, 3, 1, 2, 3, 111]
$arr5 = [...$arr1, ...$arr1]; //[1, 2, 3, 1, 2, 3]
Това улеснение при инициализацията на масиви води до по-голяма гъвкавост и по-кратък и четим код, в сравнение с традиционните начини, използвани досега – array_* функциите (като array_merge), или използването на цикли.
Preloading
Preloading (предварително компилиране на PHP файлове до байткод) е нова функционалност в PHP, която е част от OPcache.
Стандартно OPcache ще генерира байткод, при компилиране на PHP кода на PHP файл, за който е направена заявка за изпълнение. С новата функционалност към OPcache е възможно предварително да се зададат няколко PHP файла, които ще бъдат прочетени и компилирани до байткод. Предварителното зареждане ще се извърши със стартиране на PHP процеса, преди обработката на какъвто и да е друг PHP код.
Функциите и класовете в тези предварително заредени PHP файлове ще бъдат достъпни за следващите заявки така, сякаш са вградени в ядрото на самото PHP. Всички файлове, които не генерират output, може да се добавят за предварително зареждане като например файловете на различни популярни PHP frameworks като Laravel, Symphony и други.
Това предварително генериране на байткода на определени избрани PHP файлове ще допринесе за ускоряване на PHP приложенията и сайтовете.
WordPress и PHP 7.4
WordPress 5.4 е напълно съвместим с PHP 7.4. Преди да активирате PHP 7.4, уверете се, че сте обновили сайта до WordPress 5.4.
Активиране на PHP 7.4 с един клик в PHP Manager
В случай че използвате споделен хостинг или Managed VPS, можете да активирате PHP 7.4 за целия хостинг акаунт или за определена директория в него през контролния панел cPanel » PHP Manager by SuperHosting.
Преди да превключите към PHP 7.4 извършете проверка дали Вашият сайт, заедно с темата и плъгините, работят коректно с тази PHP версия. Ако активирате PHP 7.4 и забележите, че някоя функционалност в сайта не работи коректно, можете да превключите към предишната ползвана версия, през PHP Manager в cPanel.