PHP面向对象-----魔术方法

  1. __get($name)--触发时机:当调用一个不访问的成员属性的时候,会自动触发,可以利用这个方法来完成对不可调用的属性进行调用,但是不能设置值

  2. ___set($$name,$value)--触发时机:当给一个不可访问的成员属性赋值的时候,会自动触发这个方法,可以利用这个方法完成对不可以访问的属性进行赋值

  3. __isset($name)---触发时机:当使用isset()函数来判断一个对象的属性的时候,如果这个属性不存在或者不能被访问的时候会触发这个魔术方法

  4. __call($$method,$args)---触发时机:当调用一个不存在的成员方法或者是不可访问的成员访问的时候会被触发

  5. __callStatic($$method,$args)--触发时机:当调用一个不存在的成员方法或者是不可访问的成员访问的时候会被触发

  6. __unset()---触发时机:当要销毁一个不可访问的或者不存在的成员属性的时候会被调用

  7. __sleep()---触发时机:当使用serialize把对象进行序列化的时候会被触发

    public function __sleep()
    {
      return array('xxx');//指定可以被序列化的属性
    }
    
  8. __wakeup()

    触发时机:当使用unserialize的反序列化的时候会被自动触发

    public function __wakeup()
      {
    
      }
    
  9. __toString()

    触发时机:在echo一个对象的时候会被触发

    public function __toString()
      {
        return '小可爱';
      }
    
  10. __clone()
    对象复制可以通过 clone 关键字来完成(如果可能,这将调用对象的 __clone() 方法)

原文地址:https://www.cnblogs.com/zhyunfe/p/6403151.html