php__destruct()方法是什么,怎么用的?

PHP / 1739人浏览 / 0人评论

说到PHP析构函数__destruct(),就先了解下PHP构造函数__construct(),因为这两个函数正好相反,PHP析构函数只有在对象被垃圾收集器收集前(就是对象从内存中删除之前)才会被自动调用;析构函数允许我们在销毁一个对象之前执行一些设定的操作,如关闭文件、释放结果集等等。

PHP5中的特殊方法

在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析构函数__destruct(),就先了解下PHP构造函数__construct(),因为这两个函数正好相反,PHP析构函数只有在对象被垃圾收集器收集前(就是对象从内存中删除之前)才会被自动调用;析构函数允许我们在销毁一个对象之前执行一些设定的操作,如关闭文件、释放结果集等等。

析构函数的声明格式与构造函数类似,所以类中声明析构函数的名称同样是有固定格式,一样是以连续两个下画线开头的方法名__destruct(),构造函数__construct()可以带参数,但是析构函数不能带有任何参数。

php__destruct()声明示例

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/
脚本运行结束之前会调用对象的析构函数
..................程序通常是顺序结构,这是析构函数中的输出..................

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我