169
правок
(PHP Советы выделены в отдельную статью) |
AE (обсуждение | вклад) мНет описания правки |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 29: | Строка 29: | ||
TBD | TBD | ||
{| class="wikitable" | |||
|+Полезные фичи по обработке null значений | |||
!Версия | |||
!Что добавлено | |||
!Краткое описание | |||
!Примеры использования | |||
|- | |||
|7.0 | |||
|Null coalescing <code>??</code> | |||
|Позволяет кратко записывать проверки на <code>null</code> в одну строчку с присвоением альтернативного значения переменной | |||
|Пример кода | |||
|- | |||
|7.4 | |||
|Null coalescing assignment <code>??=</code> | |||
|Позволяет выполнять присваивание в одну строчку с условием, если переменная не была до этого равна <code>null</code> | |||
|Пример кода | |||
|- | |||
|8.0 | |||
|Nullsafe operator <code>?-></code> | |||
|В середине цепочки последовательных вызовов методов может встретиться null. В этом случае выполнение цепочки прерывается, конечное значение остается равным <code>null</code>. | |||
|Пример кода | |||
|} | |||
{| class="wikitable" | |||
|+Полезные фичи для строгой типизации | |||
!Версия | |||
!Что добавлено | |||
!Краткое описание | |||
!Примеры использования | |||
|- | |||
|7.4 | |||
|Typed properties | |||
|Можно ограничить типы у свойств (полей) класса | |||
|Пример кода | |||
|- | |||
|8.0 | |||
|Union types <code><nowiki>x|y</nowiki></code> | |||
|В выражениях определяющих тип можно использовать разделить <code><nowiki>|</nowiki></code> и перечислить несколько допустимых типов. Должен подходить один из списка. | |||
| | |||
|- | |||
|8.1 | |||
|Intersection Types <code>x&y</code> | |||
|В выражениях определяющих тип можно использовать разделить <code>&</code> и перечислить несколько допустимых типов. Должны подходить все указанные. | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Полезные фичи по ООП | |||
!Версия | |||
!Что добавлено | |||
!Краткое описание | |||
!Примеры | |||
|- | |||
|8.0 | |||
|<code>$object::class</code> | |||
|Теперь класс объекта можно получить без использования дополнительных функций | |||
| | |||
|- | |||
|8.0 | |||
|Promoted properties | |||
|Свойства (поля) объекта теперь можно инициализировать прямо в параметрах конструктора класса. Значения заполняются без необходимости определять присвоение в самом конструкторе. | |||
| | |||
|- | |||
|8.1 | |||
|Enums | |||
|Перечисляемый тип или другими словами — это типизированные константы | |||
|Пример кода | |||
|- | |||
|8.1 | |||
|<code>readonly</code> properties | |||
|Признак <code>readonly</code> у свойства (поля) класса означает, что значение в него можно записать только один раз. После записи изменить значение нельзя. | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
|} | |||
[[Категория:Незавершённые статьи]] |