The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
In object-oriented programming, PHP provides 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.
Magic method |
Function |
__construct() |
Automatically when instantiating a class Call |
__destruct() |
Automatically call when the class object is used |
__set() |
Automatically called when assigning a value to an undefined property |
__get() |
Automatically called when an undefined property is called |
__isset() |
Automatically called when using isset() or empty() function |
__unset() |
Automatically called when using unset() |
__sleep() |
Automatically called when serializing using serialize |
__wakeup() |
Use unserialize Automatically called when deserializing |
##__call() | Automatically called when calling a non-existent method |
__callStatic () | Automatically called when calling a non-existent static method |
__toString() | Automatically called when converting an object into a string |
__invoke() | Automatically called when trying to call an object as a method |
__set_state() | Automatically called when using the var_export() function, accepting an array parameter |
__clone() | Automatically called when using clone to copy an object |
__debugInfo() | Automatically called when using var_dump() to print object information |
The following is a brief introduction to several commonly used magic methods:
1. __set() method
will be automatically called when assigning values to undefined or invisible class attributes in the current environment. __set() method. 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.
2. __get() method
When calling or obtaining undefined or invisible class attributes in the current environment, the __get() method will be automatically called to define the syntax format of the method. As follows:
public function __get($name){
... ... ;
}
Copy after login
The parameter $name is the name of the variable to be operated.
3. __isset() method
When the isset() or empty() function is used outside the class on an attribute that is inaccessible or does not exist in the class, __isset() will be automatically called. method, the syntax format of this method is as follows:
public function __isset($name){
... ... ;
}
Copy after login
The parameter $name is the name of the attribute to be accessed.
isset() function can check whether a variable exists and is not NULL, passing in a variable as a parameter, if the passed in variable exists, it returns true, otherwise it returns false.
empty() function can check whether a variable is empty. It also needs to pass in a variable as a parameter. If the variable does not exist, or the value of the variable is equal to FALSE, then the variable will be considered not to exist.
Public members in a class can be accessed outside the class, but private members cannot be accessed outside the class. In other words, we can use the isset() or empty() function to check whether the public properties in the class exist, but these two functions are invalid for the private properties in the class.
If we want to use the isset() or empty() function to detect the private properties in the class, we only need to add an __isset() method to the class. When used outside the class isset() or empty() function, the __isset() method in the class will be automatically called.
4. __unset() method
When the unset() function is used outside the class on an attribute that is inaccessible or does not exist in the class, the __unset() method will be automatically called. This method The syntax format is as follows:
public function __unset($name){
... ... ;
}
Copy after login
The parameter $name is the name of the attribute to be accessed.
Let’s take a look at the unset() function first. The function of the unset() function is to delete the specified variable. One or more variables need to be passed in as parameters. In addition, the function has no return value.
Similarly, we can also use the unset() function to delete member attributes in the class outside the class. Similar to the __isset() method introduced above, if you want to delete the public attributes in the class, you can directly use the unset() function; if you want to delete the private attributes in the class, you need to add an __unset() to the class. method.
5. __call() method
When calling an inaccessible or non-existent method in the class, the __call() method will be called. The syntax format of this method is as follows:
public function __call($name, $arguments){
... ... ;
}
Copy after login
where $name is the name of the method to be called, and $arguments is an array of parameters passed to $name.
When the called method does not exist, the __call() method will be automatically called, and the program will continue to execute, thus avoiding program termination caused by an error when the calling method does not exist.
6. __clone() method
You can use the clone keyword to copy an object. When the copy is completed, if the __clone() method is defined, the newly created object (the object generated by copying ), the __clone() method will be automatically called, through which we can do some necessary operations. The syntax format of the __clone() method is as follows:
public function __clone(){
... ... ;
}
Copy after login
This function does not require parameters to be passed in.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What are the magic methods in php?. For more information, please follow other related articles on the PHP Chinese website!