(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