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;

  

原文地址:https://www.cnblogs.com/1500418882qqcom/p/10450192.html