Вышел первый кандидат в релизы PHP 5.6.0. Можно помочь разработчикам, проверив свои проекты на этой версии (не на боевых серверах, конечно) и сообщив о проблемах.
Изменения радуют. Рассмотрим самое интересное.
Можно использовать простые выражения в константах и значениях по умолчанию:
class PostCache { const EXPIRE_HOUR = 60 * 60; const EXPIRE_DAY = self::EXPIRE_HOUR * 24; public function put($data, $expire = 3 * EXPIRE_HOUR) { // ... } }
function queue($name, $delay = null, ...$data) { foreach ($data as $item) { Queue::put($name, $item, $delay); } }
Можно на лету распаковать массив в аргументы функции:
function updatePerson($id, $firstName, $lastName) { // ... } $person = ['Alexander', 'Makarov']; updatePerson(42, ...$person)
Ввели оператор для возведения в степень:
echo 2 ** 8; // 256 $n = 2; $n **= 8; echo $n; // 256
При помощи use
теперь можно импортировать функции и константы:
namespace My\Space { const FOO = 42; function f() { echo __FUNCTION__."\n"; } } // global namespace namespace { use const My\Space\FOO; use function My\Space\f; echo FOO."\n"; f(); }
- В ядро включили phpdbg.
- Кодировка для htmlspecialchars и других функций, которым она нужна теперь берётся из default_charset. По умолчанию используется UTF-8.
iconv
официально помечен какdeprecated
.- Можно повторно использовать
php://input
. - Можно загружать файлы больше двух гигабайт.
- Уменьшили потребление памяти при обработке POST-запросов.
Об остальных изменениях можно почитать на соответствующей странице документации, которая ещё будет дописываться.