<rmcreative>

RSS

PHP 5.6.0RC1

20 июня 2014

Вышел первый кандидат в релизы 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();
}

Об остальных изменениях можно почитать на соответствующей странице документации, которая ещё будет дописываться.

Комментарии RSS

  1. №9062
    Davert
    Davert 20.06.2014, 14:26:57

    Автолоадить функции тоже можно будет?

  2. №9063
    iJackUA
    iJackUA 20.06.2014, 14:49:07

    Davert - как я понимаю для автолоада надо придумтаь соглашение имён Функции и Файла в которой она хранится.

    Жаль, что PhpStorm пока не сделал поддержки phpdbg.

  3. №9064
    dotzero
    dotzero 20.06.2014, 14:53:48

    iconv официально помечен как deprecated

    А что вместо него?

  4. №9065
    Sasha
    Sasha 20.06.2014, 15:01:01

    а что вместо iconv рекомендуют теперь ?

  5. №9066
    Максим
    Максим 20.06.2014, 15:55:33

    Интересные изменения, но не могу понять в каком файле автолоадер должен искать импортируемые функции. Вроде фича есть, а маловостребована и трудна в применении.

  6. №9067
    Sam
    Sam 20.06.2014, 17:51:00

    Да вроде ничего на тему автозагрузки как раз нет.

  7. №9069
    Bohdan
    Bohdan 20.06.2014, 23:44:54

    Прочитал RFC. Я и правда настолько плохо знаю английский, что мне показалось, что это всего лишь опции из php.ini убирают для iconv/mbstring или же я перевёл правильно, а топик - от лукавого?

    UPD: а теперь прочёл и оригинал топика: да, там немного непонятно написано. Это лишь опции помечены как deprecated.

  8. №9070
    webs
    webs 21.06.2014, 21:53:31

    Аргументы переменной длины - не нравится мне это добавления в язык. Знатно можно будет говнокодить.

  9. №9071
    Creocoder
    Creocoder 21.06.2014, 22:59:02

    Изменения 5.6 абсолютно не впечатлили. Лучше бы выпустили обратно несовместимый 6.0 с встроенной поддержкой unicode и приведенной в порядок стандартной библиотекой.

  10. №9072
    Sam
    Sam 22.06.2014, 14:21:03

    Creocoder, этого не будет. В 6.0 будет переписанный движок (phpng), что даст крутой прирост производительности.

  11. №9078
    Саша П.
    Саша П. 26.06.2014, 2:08:41

    Ну наконец-то можно использовать константы в свойствах класса!

  12. №9148
    Плютов Саша
    Плютов Саша 01.09.2014, 13:54:55

    Кстати, уже вышел, вот ссылка в тему - plutov.by/post/php5_6_release

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.