Новости из мира PHP: Начиная с версии 7.4 в PHP стали доступны так называемые типизированные свойства . Далее я покажу на что они похоже, но для начала небольшая предыстория.

Типизированные свойства в PHP

Новости из мира PHP: Начиная с версии 7.4 в PHP стали доступны так называемые типизированные свойства. Далее я покажу на что они похоже, но для начала небольшая предыстория.

Как раньше определялись и до сих пор определяются типы свойств класса? - просто через документированные комментарии с аннотациями. Пример ниже:

class A
{
    /* @var int */
    public $prop1;
    
    /* @var string */
    public $prop2;
    
    /* @var object */
    public $prop3;
}

Многие PHP ORM библиотеки построены на подобном определении. Однако, начина с версии PHP 7.4 можно делать так:

class A
{
    public int $prop1;
    
    public string $prop2;
    
    public object $prop3;
}

Как видите теперь тип свойства определяется через синтаксис самого языка, а не через документированные комментарии, для разбора которых требуются отдельные библиотеки. Такой код, как в примере выше повышает читаемость и общее понимание программы.

К типизированным свойствам предъявляются определенные требования. Так они доступным только на уровне класса, и обязательно требуют модификатор доступа (public, protected, private или var). Для типизированных свойства доступны все типы PHP, кроме void и callable, также им должно быть присвоено некоторое значение, до их первого использования.