_call和___callStatic这两个函数是php类 的默认函数,
__call() 在一个对象的上下文中,如果调用的方法不能访问,它将被触发
__callStatic() 在一个静态的上下文中,如果调用的方法不能访问,它将被触发实例:<?phpabstract class Obj{protected $property = array();abstract protected function show();public function __call($name,$value){if(preg_match("/^set([a-z][a-z0-9]+)$/i",$name,$array)){$this->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("<br>;Bad function name '$name' ");}}}class User extends Obj{public function show(){print ("Username: ".$this->property['Username']."<br>;");//print ("Username: ".$this->getUsername()."<br>;");print ("Sex: ".$this->property['Sex']."<br>;");print ("Age: ".$this->property['Age']."<br>;");}}class Car extends Obj{public function show(){print ("Model: ".$this->property['Model']."<br>;");print ("Sum: ".$this->property['Number'] * $this ->property['Price']."<br>;");}}$user = new User;$user ->setUsername("Anny");$user ->setSex("girl");$user ->setAge(20);$user ->show();print("<br>;<br>;");$car = new Car;$car ->setModel("BW600");$car ->setNumber(5);$car ->setPrice(40000);$car ->show();?>转载于:https://www.cnblogs.com/xingyong/archive/2011/07/11/2103126.html