Home > Backend Development > PHP Problem > How to use php __set magic method

How to use php __set magic method

青灯夜游
Release: 2023-03-10 18:22:01
Original
1740 people have browsed it

In PHP, the "__set()" method is automatically called when assigning values ​​to undefined or invisible class attributes in the current environment; the syntax format is "public function __set($key, $value){ ...;}", which receives two parameters, one representing the attribute name and one representing the attribute value.

How to use php __set magic method

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

In object-oriented programming, PHP provides an A series of magic methods, these magic methods provide a lot of convenience for programming, and their role in PHP is very important. Magic methods in PHP usually start with __ (two underscores) and do not need to be explicitly called but are automatically called under certain conditions.

__set() method

The __set() method is automatically called when assigning a value to a class attribute that is undefined or invisible in the current environment. The syntax format for defining this method is as follows:

public function __set($key, $value){
    ... ... ;
}
Copy after login

Among them, the parameter $key is the name of the variable to be operated, and $value is the value of the variable $key.

[Example] The following uses a simple example to demonstrate the use of the __set() method.

<?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;;
?>
Copy after login

The running results are as follows:

为“url”赋值“https://www.php.cn/”失败!
为“title”赋值“PHP教程”失败!
Copy after login

Using the characteristics of the __set() method, we can use the __set() method to assign or modify the attributes modified with the private keyword in the class. . As shown below:

<?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();
?>
Copy after login

The running results are as follows:

为“title”赋值“PHP教程”失败!
https://www.php.cn/
Copy after login

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to use php __set magic method. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template