Официально представлен (http://php.net/index.php#id2016-12-01-3) релиз языка программирования PHP 7.1 (http://php.net/). Новая ветка отличающейся значительной порцией новых возможностей (http://php.net/manual/en/migration71.new-features.php) и наличием изменений (http://php.net/manual/en/migration71.incompatible.php), нарушающих совместимость.
Ключевые улучшения (http://php.net/manual/en/migration71.php) в PHP 7.1:
- Возможность (https://wiki.php.net/rfc/nullable_types) использования типов, которые могут принимать значение null. Для пометки таких типов применяется знак вопроса, например, определив функцию "function f(?callable $p) {}" её можно вызвать с аргументом, имеющим значение null;
- Добавлен (https://wiki.php.net/rfc/void_return_type) тип возвращаемого значения void, указывающий на то, что функция не вернула значение;- Добавлен псевдо-тип iterable, позволяющий определять параметры функций, которые могут принимать значения различных перечисляемых типов, допустимых для перебора в цикле, таких как массивы и объекты Traversable;
- При указании смещения внутри строки теперь можно указывать (https://wiki.php.net/rfc/negative-string-offsets) отрицательные значения, позиция в строке для которых будет рассчитана относительно конца строки. Например, для строки 'abcdef' $str[-2] вернёт "e";
- Добавлен (https://wiki.php.net/rfc/list_keys) вариант конструкции list(), в которой могут задаваться ключи. Например: "list(1 => $oneBit, 2 => $twoBit, 3 => $threeBit) = $powersOfTwo";
- Добавлено (https://wiki.php.net/rfc/short_list_syntax) выражение "[] =", которое выступает альтернативой конструкции "list() =". Например, вместо "list($a, $b, $c) = array(1, 2, 3)" теперь можно указать "[$a, $b, $c] = [1, 2, 3]";
- Реализована (https://wiki.php.net/rfc/invalid_strings_in_arithmetic) система вывода ошибок и предупреждений в случае использования в математических выражениях строк, не преобразуемых в число. Например, "10 apples" + "5 pears" приведёт к выводу ошибки "Notice: A non well formed numeric string encountered in example.php on line 3", а 5 * "orange" к "Warning: A non-numeric string encountered in example.php on line 3";
- Возможность (https://wiki.php.net/rfc/multiple-catch) обработки нескольких типов исключений в одном выражении catch;
- Поддержка (https://wiki.php.net/rfc/class_const_visibility) определения видимости для констант внутри класса. Константы теперь могут определяться с флагами public, private и protected;
- Поддержка асинхронной обработки сигналов (https://wiki.php.net/rfc/async_signals) в ext/pcntl и поддержка дополнительного контекста (https://wiki.php.net/rfc/additional-context-in-pcntl-signal-...) в обработчике pcntl_signal.
URL: http://php.net/index.php#id2016-12-01-3
Новость: http://www.opennet.ru/opennews/art.shtml?num=45604