Home  >  Article  >  Backend Development  >  php析构函数疑惑

php析构函数疑惑

WBOY
WBOYOriginal
2016-06-23 13:24:211069browse

<?phpclass Test {    public $start;    public $end;        public function __construct() {        echo "__construct<br />";        $this->start = microtime(true);    }        public function test() {        echo "in test()<br />";        throw new Exception("error", 500); // 抛出异常     }        public function __destruct() {        echo "__destruct<br />";    }}$test = new Test();$test->test();

方法里抛出异常后,不会调用析构函数:


try异常后能调用析构函数:

<?phpclass Test {    public $start;    public $end;        public function __construct() {        echo "__construct<br />";        $this->start = microtime(true);    }        public function test() {        echo "in test()<br />";        try { // try 异常            throw new Exception("error", 500); // 抛出异常         } catch(Exception $e) {        }    }        public function __destruct() {        echo "__destruct<br />";    }}$test = new Test();$test->test();

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn