Heim  >  Artikel  >  Backend-Entwicklung  >  destruct 不对啊,其到底什么时候执行;

destruct 不对啊,其到底什么时候执行;

WBOY
WBOYOriginal
2016-06-23 13:32:20971Durchsuche

1.手册:
在脚本执行完毕,已经发送出PHP报头时,执行;

<?php class  Test{    public $a="---";        public function ccc(){        echo "1";    }        function __destruct(){        echo $this->a;    }    }$a = new Test();$a->ccc();$a = new Test();$a->a='===';$a->ccc(); ?> 


既然是脚本结束时,执行;
那为什么结果是: 1 --- 1 ===
而非 1 1 --- ===


回复讨论(解决方案)

__destruct 是析构函数,他在对象销毁时执行

当你在第18行 $a = new Test(); 时
第16 行 $a = new Test(); 的对象 $a 就被销毁了(因为赋了新值)
你把第 18 行改成 $a = 123; 看得就更清楚了

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn