Passer au contenu principal

__get

La méthode magique __get est invoquée lorsqu’on tente d’accéder à une propriété qui est soit inaccessible (c’est-à-dire protégée ou privée), soit inexistante.

Cette méthode peut s’avérer utile dans diverses situations spécifiques :

  • Dynamisme : Si votre classe possède un grand nombre de propriétés et que vous ne souhaitez pas écrire un accesseur (getter) pour chacune d’entre elles, la méthode __get peut être une solution efficace. Elle peut également être utile si vous générez des propriétés dynamiquement.
  • Gestion des erreurs : La méthode __get vous permet de contrôler ce qui se passe lorsqu’un utilisateur tente d’accéder à une propriété qui n’existe pas. Vous pouvez, par exemple, retourner une valeur par défaut, déclencher une erreur, etc...

L'utilisation de la méthode __get doit être faite avec prudence, car elle peut rendre le code plus difficile à comprendre et à maintenir. Il est généralement préférable d’utiliser des méthodes d’accès explicites pour chaque propriété, sauf dans les cas où la flexibilité offerte par __get est nécessaire.

class User {
    private $username;

    public function __get($property) {
        echo "Attempting to access '$property'";
        return $this->username;
    }
}

$user = new User;
echo $user->username;  // Outputs: Attempting to access 'username'