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 и логове.

Рецепти

За сравнение на MAC използвайте 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.