您当前的位置:首页 > 网站建设笔记 >

PHP“魔法”方法

来源:PHP5范例代码查询辞典0

以双下划线开头的方法和函数名(如__construct(),__destruct()和__autoload())在PHP中是保留的,通常称为魔法方法。还有其他一些方法(如你在本章中已经看到的一些方法)会作为某些事件的响应自动调用。(由于这个原因,你自己的函数或方法名前面不能有双下划线)。

以下列出大部分魔法方法,并对各个方法提供了一个简要介绍。

  • __construct():创建类的一个新实例时调用。
  • __destroy():类的一个实例从内存中删除时调用。调用unset()撤销实例或脚本运行结束时会发生这种情况。
  • __autoload():第一次引用一个类时调用(例如,调用类构造函数,调用类的某个静态方法,等等)。
  • __clone():使用clone关键字创建一个对象的副本时调用。
  • __get()和__set():试图获取或设置对象未定义的一个属性时调用。__get()有一个表示属性名的参数;__set()取两个参数:想要设置的属性名以及想要指定的属性值。
  • __call():调用未定义方法时调用。它取两个参数:所用的方法名以及一个数组,其中包含传递给该方法的所有值。
  • __sleep()和__wakeup:__sleep()在试图调用serialize()串行化一个对象时调用。例如,如果你在保存一个对象之前需要先关闭该对象所用的数据库连接,或者如果你只想保存对象的部分属性,这就很有用。这个方法要返回一个数组,其中包含所要串行化的变量的名称。调用unserialize()对对象逆串行化时会自动调用__wakeup(),可以用它重建数据库连接,或者以所需的其他方式重新初始化对象。
  • __toString():需要对象的字符串表示时会调用这个方法。

当然,只有当你已经为一个给定类定义了这些魔法方法时,它们才会起作用。还要注意,这些方法不能直接调用,而只能通过要截获的事件来调用。

建站咨询

在线咨询真诚为您提供专业解答服务

咨询热线

137 1731 25507×24小时服务热线

微信交流

二维码终于等到你,还好我没放弃
返回顶部