(PHP 8 >= 8.2.0)
Атрибут используется для маркировки классов, которые позволяют использовать динамические свойства.
Динамические свойства устарели, начиная с PHP 8.2.0, поэтому их использование без маркировки класса этим атрибутом приведёт к появлению уведомления об устаревании.
<?php
class DefaultBehaviour { }
#[\AllowDynamicProperties]
class ClassAllowsDynamicProperties { }
$o1 = new DefaultBehaviour();
$o2 = new ClassAllowsDynamicProperties();
$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>
Результат выполнения данного примера в PHP 8.2:
Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10