После четырех релиз кандидатов вышла финальная версия PHP 5.6. Сразу стоит обратить внимание, что поддержка ветки 5.3 официально завершена и исправление багов в ней больше производится не будет.
Что нового в PHP 5.6
1. Скалярные выражения в константах классов
Теперь мы можем писать например вот так:
const ONE = 1; const TWO = ONE * 2;
Официальная документация.
2. Функции с переменным числом аргументов
Синтаксис корявенький, но все же дождались.
function fun($param1, $param2 = null, ...$params) { }
Так же можно передать функцию массив аргументов.
function fun($a, $b) { return $a + $b; }
echo add(...[1, 2])."\n";
Официальная документация.
3. Оператор возведения в степень **
Не нравится функция pow? Получи оператор возведения в степень **. Почему не привычный оператор (^) кажете вы? Символ (^) в PHP уже используется для побитовой операции «исключающее или».
$numer = 2 ** 4; $number **= 2;
А так же это работам с функциями GMP.
Официальная документация.
4. Улучшенная автозагрузка классов.
spl_autoload_extensions('.php'); spl_autoload_register();
Из-за того что символ «\» разделения вложенности пространства имен в win системах является разделителем директории нужно было делать что-то вроде такого:
spl_autoload_register(function ($class_path) { require_once str_replace('\\', '/', $class_path) . '.php'; });
Теперь так делать не надо… кстати в свежих PHP 5.5 тоже не надо.
5. В ядро включен интерактивный отладчик phpdbg.
6. Импорт функций и констант при помощи ключевого слова use.
7. Разрешено повторное чтение открытого потока php://input, а $HTTP_RAW_POST_DATA объявлена устаревшей. На сегодняшний момент в документации устаревшая информация.
8. GMP-объекты теперь поддерживают перегрузку операторов.
9. Указана кодировка по умолчанию.
Настройки input_encoding, output_encoding и internal_encoding, по умолчанию имеют значение «UTF-8».
10. Поддержка загрузки файлов больше 2 Гб.
Официальный анонс на php.net