PHP 5.6: Головні нововведення

PHP 5.6 завершує розвиток гілки 5.x перед PHP 7: варіадичні параметри, розпаковка аргументів ..., оператор **, імпорт use function / use const, константні вирази, phpdbg. Зверніть увагу на пріоритет **, суворіший json_decode, поведінку TLS і крипторозширень.

migration56.

Зміст


Варіадика

function sum($first, ...$rest)
{
    return $first + array_sum($rest);
}

Розпаковка

$args = array(1, 2, 3);
echo sprintf('%d-%d-%d', ...$args);

Оператор **

Правоасоціативний: 2 ** 3 ** 2 дорівнює 2 ** (3 ** 2).

use function / use const

Явний імпорт функцій і констант з іншого простору імен.

Константні вирази

Дозволені вирази в оголошеннях констант і значеннях за замовчуванням там, де це підтримує мануал.

phpdbg

Зручно для покрокової відладки CLI; для HTTP-запитів зазвичай лишаються Xdebug і логи.

Рецепти

Для порівняння HMAC використовуйте hash_equals() (додано в 5.6).

Зворотна несумісність

migration56 incompatible: ** з унарними операторами, JSON, mcrypt/gd/openssl, foreach по властивостях, TLS.

Deprecated

$HTTP_RAW_POST_DATA та інше — migration56 deprecated.

Інше

Перевірте клієнти HTTPS на коректні сертифікати та SNI.


Підсумок

Після 5.6 наступний великий крок — PHP 7.0: типи, Throwable, швидкодія; продовження — у гайді 7.0.