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;
浙公网安备 33010602011771号