Maison > Article > développement back-end > Comment utiliser la méthode magique php __set
En PHP, la méthode "__set()" est automatiquement appelée lors de l'attribution de valeurs à des attributs de classe non définis ou invisibles dans l'environnement actuel ; le format de syntaxe est "public function __set($key, $value) { ...;}", qui reçoit deux paramètres, un représentant le nom de l'attribut et un représentant la valeur de l'attribut.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
En programmation orientée objet, PHP fournit Une série de méthodes magiques, ces méthodes magiques offrent beaucoup de commodité pour la programmation, et leur rôle en PHP est très important. Les méthodes magiques en PHP commencent généralement par __ (deux traits de soulignement) et ne nécessitent pas d'appels explicites mais sont automatiquement appelées sous certaines conditions.
Méthode __set()
La méthode __set() est automatiquement appelée lors de l'attribution d'une valeur à un attribut de classe qui est indéfini ou invisible dans l'environnement actuel. Le format syntaxique pour définir cette méthode est le suivant :
public function __set($key, $value){ ... ... ; }
Parmi eux, le paramètre $key est le nom de la variable à exploiter, et $value est la valeur de la variable $key.
【Exemple】Ce qui suit utilise un exemple simple pour démontrer l'utilisation de la méthode __set().
<?php class Website{ public $name; private $url; public function __set($key, $value){ echo '为“'.$key.'”赋值“'.$value.'”失败!<br>'; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = 'https://www.php.cn/'; $object -> title = 'PHP教程'; ?>
Les résultats d'exécution sont les suivants :
为“url”赋值“https://www.php.cn/”失败! 为“title”赋值“PHP教程”失败!
En utilisant les caractéristiques de la méthode __set(), nous pouvons attribuer ou modifier les attributs modifiés avec le mot-clé privé dans la classe via le __set( ) méthode. . Comme indiqué ci-dessous :
<?php class Website{ public $name; private $url = ''; public function __set($key, $value){ if(isset($this->$key)){ $this -> $key = $value; }else{ echo '为“'.$key.'”赋值“'.$value.'”失败!<br>'; } } public function getUrl(){ echo $this -> url; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = 'https://www.php.cn/'; $object -> title = 'PHP教程'; $object -> getUrl(); ?>
Les résultats en cours d'exécution sont les suivants :
为“title”赋值“PHP教程”失败! https://www.php.cn/
Apprentissage recommandé : "Tutoriel vidéo 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!