Méthode __get

La méthode __get est automatiquement appelée lors d'une tentative d'obtention de la valeur d'une propriété inexistante ou inaccessible d'un objet. Cette méthode magique accepte un paramètre - le nom de la propriété demandée.

Syntaxe

phppublic function __get(string $name) {
  // implémentation
}

Exemple

Créons une classe avec une méthode __get qui retournera des valeurs pour les propriétés inexistantes :

php<?php
  class User {
    private $data = [
      'name' => 'John',
      'age' => 30
    ];
    
    public function __get($name) {
      if (array_key_exists($name, $this->data)) {
        return $this->data[$name];
      }
      return null;
    }
  }
  
  $user = new User();
  echo $user->name;
?>

Résultat de l'exécution du code :

php'John'

Exemple

La méthode __get peut être utilisée pour implémenter des propriétés dynamiques :

php<?php
  class DynamicProperties {
    public function __get($name) {
      return "Valeur dynamique pour {$name}";
    }
  }
  
  $obj = new DynamicProperties();
  echo $obj->test;
?>

Résultat de l'exécution du code :

php'Valeur dynamique pour test'

Voir aussi

  • la méthode __set,
    qui est appelée lors de la définition d'une propriété inexistante
  • la méthode __call,
    qui est appelée lors de l'appel d'une méthode inexistante