PHP魔术方法

总的来说, 有下面几个魔术函数
__construct() __destruct() __get() __set() __isset() __unset() __call() __callStatic()
__sleep() __wakeup() __toString() __set_state() __clone() __autoload()

__construct()当实例化一个对象的时候,这个对象的这个方法首先被调用。
__destruct()当删除一个对象或对象操作终止的时候,调用该方法。
__set()在给不可访问属性赋值时会被调用。
__get()读取不可访问属性的值时会被调用。
__isset()当对不可访问属性调用 isset()或 empty()时,会被调用。
__unset()当对不可访问属性调用 unset()时会被调用。
__sleep当进行序列化对象时候调用
__wakeup当进行反序列对象时候调用
__toString当直接打印一个对象的时候,这个方法将会被调用
__call($func, $param) 当尝试调用一个不存在的方法的时候被调用. 这个方法必须有两个参数,第一个为调用的方法名,第二个是一个被调用方法的参数数组。
__callStatic()当尝试调用一个不存在的静态方法的时候被调用.这个方法必须有两个参数,第一个为调用的方法名,第二个是一个被调用方法的参数数组。
__set_state()当用var_export导出实例的时候被调用
__clone()当克隆实例时候被调用.
__autoload()函数.当创建一个实例化的时候,如果对应的类不存在,则会被调用。(可跟spl_autoload_register() 做一下比较)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、__get、__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的 __get( $propert...
    丁叔i阅读 374评论 0 0
  • 魔术方法(Magic methods) PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了...
    軍_阅读 380评论 0 3
  • 0x00 引言 今日去面试,被面试官突然问了一句,php的魔术方法。一脸懵逼,没明白是啥。后来在回来的路上才想起,...
    一口咖啡一口茶阅读 983评论 0 3
  • 概念 PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用。 常见的方法 __...
    NoFacePeace阅读 219评论 0 0
  • 本文算是对之前的一篇博文《自个儿写Android的下拉刷新/上拉加载控件》的续章,如果有兴趣了解更多的朋友可以先看...
    Machivellia阅读 3,580评论 8 70