PHP - изменения (обновления)
До PHP 5.3
$str1{0} — синтаксис получения символа строки PHP 5.3 ?: — сокращение тернарного оператора $func = function(){}; — анонимные (лямбда) функции method()->var — получение объекта из метода/функции <<<\'DOC\' — поддержка NOWDOC namespace — поддержка пространств имен __DIR__ — новая магическая константа $class::$foo — динамичное указание класса const — ключевое слово для создания констант вне классов static::method() — статическое связывание goto hell; — оператор goto __callStatic(), __invoke() — магические методы PHP 5.4 = — короткая запись вывода на экран работает всегда [1,2] — запись массива, без слова array trait Class {} — примеси (трейты) foo()[0] — быстрое получение элемента массива (new Foo)->method() — доступ к элементу объекта при его создании Class::{\'foo\'}() — динамичное указание метода callable — новый тип для аргументов функции/метода @ — улучшена производительность PHP 5.5 [1,3,4][2], "foobar"{2} — разыменования только-созданных массивов и строк empty() — можно применять к результатам функций и выражений list() в foreach finally — в конструкции try/catch Class::class — для получение имени класса в пространствах yield — создание генераторов API для хэширования паролей PHP 5.6 const PLUS = 1 + 2; — скалярные выражения в константах/свойствах/аргументах функции const ARR = [\'a\', \'b\']; — константа может хранить массив func( ...$args ) или func( ...[2, 3] ) — неизвестное число аргументов функции или распаковка массива с помощью \'...\' (splat оператор) ** — оператор возведения в степень use function и use const — импорт функций и констант в пространство Куда делся PHP 6? PHP 7 $a ?? \'\' — одновременная проверка isset и получение значения $a <=> $b — одновременное выполнение трех сравнений: больше, равно или меньше. define(\'FOO\', [1,2]); — передача массива константе через define() use name\\space\\{A, B, C as c}; — группировка импорта при помощи use int, float, bool — новые типы для аргументов функции/метода int, float, bool, array — указание возвращаемых типов для функции/метода foo()(), $a::$b::$c, $$foo->bar — единый синтаксис переменных: СЛЕВА НАПРАВО foreach — изменена логика работы $class = new class{} — анонимные классы yield ... return 99; — возврат (return) выражений в генераторах yield from gen() — делегирование генераторов Еще новинки PHP 7.0 PHP 7.1 void — возвращаемый тип iterable — новый псевдо-тип null — тип передаваемых/возвращаемых значений {-1} — отрицательное значение смещения в строках [\'key\'=>$a] = [\'key\'=>\'Значение\'] — поддержка ключей и новый синтаксис list() Область видимости констант в классах Заметки по PHP 7.1 Ссылки по теме: |