Maison >développement back-end >tutoriel php >Comment appeler les fonctions _get et _set à partir de classes externes en PHP
Le contenu de cet article explique comment appeler les fonctions _get et _set dans les classes externes en PHP. J'espère que cela pourra aider les amis dans le besoin.
Jetons d'abord un coup d'œil aux fonctions __get
et __set
de la classe PHP
Lorsque vous essayez d'obtenir une propriété inaccessible, la classe appellera automatiquement __get
Fonction.
Lorsque vous essayez de définir une propriété inaccessible, la classe appelle automatiquement la fonction __set
.
Tout d'abord, jetons un œil à la fonction __get
Essayons d'obtenir un attribut accessible :
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->a; ?>
Regardons son retour :
1
. Pas de problème, la fonction __get
n'est pas appelée. Maintenant laissez-moi accéder à une propriété privée inaccessible :
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->b; ?>
et vous trouverez :
you can get b
indiquant que le __get
La fonction est appelée ici. , permettez-moi de jeter un nouveau coup d'œil à la fonction __set
et d'utiliser également l'attribut accessible public
en premier :
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->a = 1; echo $dy->a; ?>
Regardez le résultat :
1
est utilisé avec succès, pas de problème, Ensuite nous utilisons des attributs privés :
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->b = 1; echo $dy->b; ?>
Ensuite nous voyons :
you can get b1 PHP Fatal error: Cannot access private property A::$b in /usercode/file.php on line 11
La fonction __set
est appelée ici et nous demande que nous ne pouvons pas utiliser les attributs privés de la classe.
Implémentons maintenant l'utilisation externe des attributs privés via la fonction __set
:
<?php class A{ public $a; private $b; function __set($name,$val){ $this->$name=$val; } function B(){ echo $this->b; } } $dy = new A(); $dy->b = 1; $dy->B(); ?>
Regardez le résultat :
1
indique que l'utilisation est réussie.
Recommandations associées :
Code pour PHP pour implémenter la fonction d'exportation PDF sous le framework thinkphp
Analyse approfondie de la fonction strpos en PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!