首页/PHP/PHP__destruct()析构方法的详细解释

PHP__destruct()析构方法的详细解释

__destruct(),PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被销毁时执行。
  • 析构方法会自动调用
  • 当一个对象称为垃圾对象的时候(没有任何变量再引用它)
  • 析构方法没有返回值也不接受参数
  • 主要作用是释放资源的操作,并不是销毁对象本身。
  • 一个类最多只有一个析构方法。

<?php
		class person{	//person父类
		protected $name;
		public function __construct($name=""){
			$this->name = $name;	//初始化$name属性,默认空
		}
		public function sing(){
			return $this->name." is singing";
		}
		public function dance(){
			return $this->name." is danceing";
		}
		public function  __destruct(){
			echo $this->name." 我扯完蛋了!";
		}
	}

	class student extends person{
		public function discuss(){
			return $this->name." is discuss in class";
		}
		//当基类,没有构造方法时,则父类的构造方法默认会被继承下来,且会自动执行。
		public function __destruct(){
			parent::__destruct();
			echo $this->name." 我也扯完蛋了!";
		}
	}
	$s1 = new student("张三");
	$s2 = new student("李四");
	$s3 = new student("王五");
?>
输出结果为:王五 我扯完蛋了!王五 我也扯完蛋了!李四 我扯完蛋了!李四 我也扯完蛋了!张三 我扯完蛋了!张三 我也扯完蛋了!

总结:

  • 父类的析构方法不会被引擎暗中调用
  • 要执行父类的析构方法,必须在子类的析构方法体中显式调用 parent::__destruct()
  • 如子类没有写析构方法,则调用父类,如子类有析构方法,则覆盖了父类的析构方法。
收藏:

相关资讯