Home>Article>Backend Development> How to use __call() in PHP
This article mainly introduces the use of __call() in PHP. Interested friends can refer to it. I hope it will be helpful to everyone.
PHP5 objects have a new special method __call(), which is used to monitor other methods in an object. If you try to call a method that does not exist in an object or is permission-controlled, the__call method will be automatically called.
Example 1: __call
doStuff(); $x->fancy_stuff(); ?>
This special method can be used to implement the "overloading" action in JAVA, so that you can check your parameters and Pass parameters by calling a private method.
Example 2: Use __call to implement the "overload" action
foo_for_int($arguments[0]); if(is_string($arguments[0])) $this->foo_for_string($arguments[0]); } } private function foo_for_int($x) { print("oh an int!"); } private function foo_for_string($x) { print("oh a string!"); } } $x = new Magic(); $x->foo(3); $x->foo("3"); ?>
Quoted from:
_call and ___callStatic are the default functions of the PHP class.
__call() In the context of an object, if the called method cannot be accessed, it will be triggered
__callStatic() In the context of a static object, if the called method cannot be accessed, It will be triggered
Instance:
property[$array[1]] = $value[0]; return; } elseif(preg_match("/^get([a-z][a-z0-9]+)$/i",$name,$array)) { return $this->property[$array[1]]; } else { exit("
;Bad function name '$name' "); } } } class User extends Obj { public function show() { print ("Username: ".$this->property['Username']."
;"); //print ("Username: ".$this->getUsername()."
;"); print ("Sex: ".$this->property['Sex']."
;"); print ("Age: ".$this->property['Age']."
;"); } } class Car extends Obj { public function show() { print ("Model: ".$this->property['Model']."
;"); print ("Sum: ".$this->property['Number'] * $this ->property['Price']."
;"); } } $user = new User; $user ->setUsername("Anny"); $user ->setSex("girl"); $user ->setAge(20); $user ->show(); print("
;
;"); $car = new Car; $car ->setModel("BW600"); $car ->setNumber(5); $car ->setPrice(40000); $car ->show(); ?>
Related recommendations:
PHP Development (17)-callback-readdir-is_dir-foreach-glob- PhpStorm
java-Concurrency-Callable, Future and FutureTask
##php-Call to a member function assign() on
The above is the detailed content of How to use __call() in PHP. For more information, please follow other related articles on the PHP Chinese website!