La classe AllowDynamicProperties

(PHP 8 >= 8.2.0)

Introduction

Cet attribut est utilisé pour marquer les classes qui autorisent les propriétés dynamiques.

Note: Bien que les attributs eux-mêmes ne soient pas hérités, l'effet de l'attribut AllowDynamicProperties l'est. Les classes enfants d'une classe marquée avec cet attribut autoriseront également les propriétés dynamiques, même si elles ne déclarent pas explicitement l'attribut.

Synopsis de la classe

#[\Attribute]
final class AllowDynamicProperties {
/* Méthodes */
public __construct()
}

Exemples

Les propriétés dynamiques sont obsolètes à partir de PHP 8.2.0, donc les utiliser sans marquer la classe avec cet attribut émettra un avis d'obsolescence.

Exemple #1 AllowDynamicProperties avec une propriété inexistante

<?php
class DefaultBehaviour { }

#[
\AllowDynamicProperties]
class
ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new ClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Résultat de l'exemple ci-dessus en PHP 8.2 :

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10

Exemple #2 AllowDynamicProperties avec une propriété inexistante dans une classe héritée

<?php
class DefaultBehaviour { }

#[
\AllowDynamicProperties]
class
ClassAllowsDynamicProperties { }

class
InheritedClassAllowsDynamicProperties extends ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new InheritedClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Résultat de l'exemple ci-dessus en PHP 8.2 :

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 12

Sommaire

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top