Home>Article>Backend Development> How to use php magic methods __get() and __set()
"__set()" is automatically called when assigning a value to an undefined attribute, the syntax is "public function __set(key,value){}"; "__get()" is called when an undefined attribute is called, Syntax "public function __get(name){}".
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
The magic method in PHP usually starts with __( It starts with two underscores) and does not need to be explicitly called but is automatically called under certain conditions.
Magic method | Function |
---|---|
__set() | is giving undefined Automatically called when assigning a property |
__get() | Automatically called when calling an undefined property |
1. __set() method
When assigning a value to a class attribute that is undefined or invisible in the current environment, the __set() method will be automatically called. The syntax format for defining this method is as follows:
public function __set($key, $value){ ... ... ; }
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.
'; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = '//m.sbmmt.com/'; $object -> title = 'PHP教程'; ?>
The running results are as follows:
为“url”赋值“//m.sbmmt.com/”失败! 为“title”赋值“PHP教程”失败!
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:
$key)){ $this -> $key = $value; }else{ echo '为“'.$key.'”赋值“'.$value.'”失败!
'; } } public function getUrl(){ echo $this -> url; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = '//m.sbmmt.com/'; $object -> title = 'PHP教程'; $object -> getUrl(); ?>
The running results are as follows:
为“title”赋值“PHP教程”失败! //m.sbmmt.com/
2. The __get() method
is not defined or is not defined when calling or obtaining the current environment. When the class attribute is invisible, the __get() method will be automatically called. The syntax format for defining this method is as follows:
public function __get($name){ ... ... ; }
The parameter $name is the name of the variable to be operated.
[Example] The following uses a simple example to demonstrate the use of the __get() method.
url.'
'; echo $object -> name.'
'; echo $object -> title.'
'; ?>
The running results are as follows:
//m.sbmmt.com/ 获取:“name”失败! 获取:“title”失败!
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to use php magic methods __get() and __set(). For more information, please follow other related articles on the PHP Chinese website!