![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
![]()
Что нас ждёт в PHP 5.52012-10-16 06:01:08 (читать в оригинале)PHP 5.5 планируется выпустить в Феврале-Марте 2013. Отвечать за релиз в этот раз будет Julien Pauli, который приедет на WebConf в ноябре. Версия 5.5 будет обратно совместма с остальной линейкой 5.x, так что можно будет смело обновляться. Итак, интересности из транка, которые, возможно, попадут в 5.5. foreachlistИнтересное добавление к синтаксису: $users = array( array('Foo', 'Bar'), array('Baz', 'Qux'); ); // раскидываем массив в переменные foreach ($users as $user) { list($firstName, $lastName) = $user; echo "First name: $firstName, last name: $lastName. "; } // а вот так можно будет в 5.5 foreach ($users as list($firstName, $lastName)) { echo "First name: $firstName, last name: $lastName. "; } generatorsГенераторы — новый способ довольно сжато описывать эффективно работающие итераторы, используя минимум кода. Функция или метод, в котором встречается ключевое слово function getLinesFromFile($fileName) { // на каждой итерации выполняем всё до первого yield if (!$fileHandle = fopen($fileName, 'r')) { return; } // while (false !== $line = fgets($fileHandle)) { // то есть до сюда yield $line; } // а вот эта часть выполнится только когда не вызовется yield fclose($fileHandle); } // выполнения функции не происходит потому как внутри есть yield $lines = getLinesFromFile($fileName); foreach ($lines as $line) { // работаем с $line } Работает всё это довольно шустро. hash_pbkdf2Новая функция Данную тему я уже затрагивал. Кстати, в документации к Упрощённый API для хеширования паролейТак как хеширование паролей необходимо в большинстве приложений, разрабатываемых на PHP и при этом очень многие не понимают, как это сделать правильно, Anthony Ferrara, поработавший над RFC и реализацией, решил эту задачу упростить. Вот так будет выглядеть сохранение пароля: $password = "foo"; $hash = password_hash($password, PASSWORD_DEFAULT); // записываем хеш в базу А вот так его проверка: // читаем хеш из базы if (password_verify($password, $hash)) { // пароль верный } else { // пароль не верный } Разыменование констант, строк и массивовМожно будет так: echo array(1, 2, 3)[0]; // 1 echo "foobar"[2]; // o echo "foobar"["foo"][0] // f echo [1,3,4][2]; // 4 echo ['a', 'b'][mt_rand(0, 1)]; // a или b empty заработает с функциямиЭто сильно упростит всем нам жизнь: if(!empty($this->getPosts()) { // ... } Другие изменения (не факт, что все будут в 5.5)
Отдельно стоит отметить предложение улучшенной компиляции через построение AST. В 5.5 реализации точно не будет, но штука интересная. Сейчас PHP компилируется по мере выполнения. Всё делается в один проход. В RFC предлагается перейти к двупроходной компиляции. Сначала парсер будет разбирать всё в дерево. Затем уже это дерево будет компилироваться. Посередине будет возможность засунуть разные хорошие оптимизации. С одной стороны получаются дополнительные расходы на компиляцию, с другой, при использовании APC получается сильный выигрыш на более оптимальных инструкциях для Zend Engine. Также данное изменение упростит код компилятора, что положительно скажется на дальнейшем развитии PHP.
|
![]() ![]() ![]()
Категория «Мультипликация»
Взлеты Топ 5
Падения Топ 5
![]()
Популярные за сутки
|
Загрузка...

взяты из открытых общедоступных источников и являются собственностью их авторов.