PHP - изменения (обновления)
Войти

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


Ссылки по теме:

  1. https://wp-kama.ru
Теги:
php