Home  >  Article  >  Backend Development  >  Instructions for using php magic method_PHP tutorial

Instructions for using php magic method_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:43:30807browse

After PHP5.0, PHP has more object-oriented methods, making PHP more powerful! !
Some functions called magic methods in PHP are introduced here: In fact, in general applications, we all need to use them! !

1.__construct() When instantiating an object, this method of the object is first called.
Java code
class Test { function __construct() { echo "before"; } } $t = new Test();
class Test { function __construct() { echo "before"; } } $t = new Test();
The output is:
start
We know that the php5 object model and the function with the same class name are the constructors of the class, then if we define both the constructor and __construct () method, php5 will call the constructor by default instead of calling the __construct() function, so __construct() serves as the default constructor of the class
2.__destruct() when deleting an object or object This method is called when the operation terminates.
Java code
class Test { function __destruct() { echo "end"; } } $t = new Test(); will output end
class Test { function __destruct() { echo "end"; } } $t = new Test(); will output end
We can then perform operations such as releasing resources at the end of the object operation
3.__get() When trying Called when reading a property that does not exist.

If you try to read a property that does not exist in an object, PHP will give an error message. If we add the __get method to the class, we can use this function to implement various operations similar to reflection in Java.
Java code
class Test { public function __get($key) { echo $key . " does not exist"; } } $t = new Test(); echo $t->name; will output: name does not exist
class Test { public function __get($key) { echo $key . "Does not exist"; } } $t = new Test(); echo $t->name; will output: name does not exist Exists
4.__set() is called when trying to write a value to a property that does not exist.
Java code
class Test { public function __set($key,$value) { echo 'pair'.$key . "attached value".$value; } } $t = new Test() ; $t->name = "aninggo"; will output: value attached to name aninggo
class Test { public function __set($key,$value) { echo 'pair'.$key . "value attached" .$value; } } $t = new Test(); $t->name = "aninggo"; will output: add value to name aninggo

5.__call() when trying This method is called when calling a method on an object that does not exist.
Java code
class Test { public function __call($Key, $Args) { echo "The {$Key} method you want to call does not exist. The parameters you passed in are: " . print_r( $Args, true); } } $t = new Test(); $t->getName(aning,go);
class Test { public function __call($Key, $Args) { echo "You want to call The {$Key} method does not exist. The parameters you pass in are: " . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
The program will output:
Java code
The getName method you want to call does not exist. The parameters are: Array
(
[0] => aning
[1] => go
)
The getName method you want to call does not exist. The parameters are: Array
(
[0] => aning
[1] => go
)
6.__toString() is used when printing an object Calling

This method is similar to java's toString method. When we print the object directly, we call this function
class Test { public function __toString() { return "Print Test"; } } $t = new Test(); echo $t;
When echo $t; is run, $t->__toString(); will be called to output
Print Test
7. __clone() is called when the object is cloned

class Test { public function __clone() { echo "I was copied!"; } }$t = new Test(); $t1 = clone $t;Program output: I have been cloned!

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/320779.htmlTechArticleAfter PHP5.0, PHP has more object-oriented methods, making PHP more powerful! ! Some functions called magic methods in PHP are introduced here: In fact, in general applications, we all need...
Statement:
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