Maison  >  Article  >  développement back-end  >  Comment utiliser la méthode magique php __set

Comment utiliser la méthode magique php __set

青灯夜游
青灯夜游original
2021-06-18 18:06:441711parcourir

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.

Comment utiliser la méthode magique php __set

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 &#39;为“&#39;.$key.&#39;”赋值“&#39;.$value.&#39;”失败!<br>&#39;;
        }
    }
    $object          = new Website();
    $object -> name  = &#39;php中文网&#39;;
    $object -> url   = &#39;https://www.php.cn/&#39;;
    $object -> title = &#39;PHP教程&#39;;
?>

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 = &#39;&#39;;
        public function __set($key, $value){
            if(isset($this->$key)){
                $this -> $key = $value;
            }else{
                echo &#39;为“&#39;.$key.&#39;”赋值“&#39;.$value.&#39;”失败!<br>&#39;;
            }
        }
        public function getUrl(){
            echo $this -> url;
        }
    }
    $object          = new Website();
    $object -> name  = &#39;php中文网&#39;;
    $object -> url   = &#39;https://www.php.cn/&#39;;
    $object -> title = &#39;PHP教程&#39;;
    $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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn