PHP 5.6: Головні нововведення
PHP 5.6 завершує розвиток гілки 5.x перед PHP 7: варіадичні параметри, розпаковка аргументів ..., оператор **, імпорт use function / use const, константні вирази, phpdbg. Зверніть увагу на пріоритет **, суворіший json_decode, поведінку TLS і крипторозширень.
Зміст
- Варіадика
- Розпаковка
- Оператор
** use function/use const- Константні вирази
- phpdbg
- Рецепти
- Зворотна несумісність
- Deprecated
- Інше
Варіадика
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.