9个PHP魔术方法总结

__construct 

构造器是一个魔术方法,当对象被实例化时它会被调用。在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承。如果我们想到以前继承例子从介绍到oop,我们能添加构造方法到Animal 类中,如:

1 class Animal{
2   
3   public function __construct() {
4     $this->created = time();
5     $this->logfile_handle = fopen('/tmp/log.txt''w');
6   }
7   
8 }
现在我们创建一个类来继承Animal类 - Penguin类!不添加任何属性和方法在Penguin类中,我们能申明并定义它继承自Animal类,如: 
1 class Penguin extends Animal {
2   
3 }
4   
5 $tux new Penguin;
6 echo $tux->created;
如果我们定义一个构造方法在Penguin类中,然后Penguin对象将会运行当它被实例化后。由于并没有构造方法,PHP 会参考父类方法定义  信息来使用它因此我们能覆盖父类方法,或者不,在我们的新类中-很便利。

__destruct

你发现文件句柄也是构造器一部分吗?当我们使用完一个对象时真不想把事情放一边,因此析构方法做着与构造方法相反的事情。当对象被销毁时,析构方法会运行,或者明确的说当我们不再使用它时,php会为我们清理掉。Animal类中,我们的析构方法像这样,如:

01 class Animal{
02   
03   public function __construct() {
04     $this->created = time();
05     $this->logfile_handle = fopen('/tmp/log.txt''w');
06   }
07   
08   public function __destruct() {
09     fclose($this->logfile_handle);
10   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值