>백엔드 개발 >PHP 튜토리얼 >php析构函数疑惑

php析构函数疑惑

WBOY
WBOY원래의
2016-06-23 13:24:211120검색

<?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();

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.