PHP3个魔术方法
1、__toString()转换字符串
执行时机:在对象被当成字符串使用时自动执行
功能作用:兼容对象的字符串调用形式,根据用户需求显示出对象的字符串形态
例:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function __toString(){ return $this->name; } } $p1 = new Person('张三',20); echo $p1.'你好';
2、__invoke()函数调用方法
执行时机:在对象被当成函数使用时自动执行
功能作用:兼容对象的函数调用形式,允许用户像使用函数一样使用对象
例:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function __invoke(){ echo "姓名:$this->name,年龄:$this->age"; } } $p1 = new Person('张三',20); $p1();
3、__clone()克隆方法
执行时机:在克隆(clone)对象时自动执行
功能作用:在克隆对象时可以同时执行一些其它操作,甚至可以阻止对象被克隆
例:
class Person{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function __clone(){ echo "克隆克隆"; } } $p1 = new Person('张三',20); $p2 = clone $p1;