PHP中的魔法方法

以双下划线开头的方法和函数名(如__construct(),__destruct()和__autoload())在PHP中是保留的,通常称为魔法方法。还有其他一些方法会作为某些事件的响应自动调用。

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

      __construct():创建类的一个新实例时调用。

      __destroy():类的一个实例从内存中删除时调用。调用unset()撤销实例或脚本运行结束时会发生这种情况。

      __autoload():第一次引用一个类时调用(例如,调用类构造函数,调用类的某个静态方法,等等)

      __clone():使用clone关键字创建一个对象的副本时调用。

      __get()和__set():试图获取或设置对象未定义的一个属性时调用。__get()有一个表示属性名的参数;__set()取两个参数:想要设置的属性名以及想要指定的属性值。

      __call():调用未定义方法时调用。它取两个参数:所用的方法名以及一个数组,其中包含传递给该方法的所有值。

      __sleep()和__wakeup():__sleep()在试图调用serialize()串行化一个对象时调用。例如,如果你在保存一个对象之前需要先关闭该对象所用的数据库连接,或者如果你只想保存对象的部分属性,这就很有用。这个方法要返回一个数组,其中包含所要串行化的变量名称。调用unserialize()对对象逆串行化时会自动调用 __wakeup(),可以用它重建数据库连接,或者以所需的其他方式重新初始化对象。

     __toString():需要对象的字符串表示时会调用这个方法。

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

     转自<PHP5 Recipes>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值