说到PHP析构函数__destruct(),就先了解下PHP构造函数__construct(),因为这两个函数正好相反,PHP析构函数只有在对象被垃圾收集器收集前(就是对象从内存中删除之前)才会被自动调用;析构函数允许我们在销毁一个对象之前执行一些设定的操作,如关闭文件、释放结果集等等。
在php中内置了一些特书的方法,这些特殊方法被称之为魔术方法,其也有特殊的命名规则,以“__”双下划线开头的方法和函数名,所以我们自定义的函数不应该用双下划下开头,目的是为了区分魔术方法。
__construct(), __autoload(),__destruct(), __call(), __callStatic(), __get()
, __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为魔术方法(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。
说到PHP析构函数__destruct(),就先了解下PHP构造函数__construct(),因为这两个函数正好相反,PHP析构函数只有在对象被垃圾收集器收集前(就是对象从内存中删除之前)才会被自动调用;析构函数允许我们在销毁一个对象之前执行一些设定的操作,如关闭文件、释放结果集等等。
析构函数的声明格式与构造函数类似,所以类中声明析构函数的名称同样是有固定格式,一样是以连续两个下画线开头的方法名__destruct(),构造函数__construct()可以带参数,但是析构函数不能带有任何参数。
public function __destruct(){
//代码块......
}
通常当我们在类中编写PHP代码,是很少使用析构函数的,所以它很少被用到,它属于类中可声明可不声明的,只是有需要时才在类中声明。
### php__destruct()演示示例代码
<?php
class Mysite{
public $title, $domain, $tips;
public function __construct(){
echo '..................程序通常是顺序结构,所以这里最先打印出来..................<br>';
echo '..................程序通常是顺序结构,这是构造函数中的输出..................<br>';
}
public function __destruct(){
echo '..................程序通常是顺序结构,这是析构函数中的输出..................<br>';
}
}
$obj = new Mysite();
echo "<br>";
echo '编程之吧-福星之吧<br>';
echo "<br>";
echo 'https://www.fxzbcn.com/<br>';
echo "<br>";
echo '脚本运行结束之前会调用对象的析构函数<br>';
?>
运行效果如下:
..................程序通常是顺序结构,所以这里最先打印出来..................
..................程序通常是顺序结构,这是构造函数中的输出..................
编程之吧-福星之吧
https://www.fxzbcn.com/
脚本运行结束之前会调用对象的析构函数
..................程序通常是顺序结构,这是析构函数中的输出..................
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论