為什么加了echo“hello"后,hello會(huì)夾在二個(gè)詞中間
<?php
class Car {
? ? function __construct(){
? ? ? ? print "構(gòu)造";
? ? }
? ? function __destruct(){
? ? ? ? print "析構(gòu)";
? ? }
? ? //增加構(gòu)造函數(shù)與析構(gòu)函數(shù)
}
$car = new Car();
echo "hello";
這樣的結(jié)果是 ? ?“構(gòu)造hello析構(gòu)” ?為什么不是"構(gòu)造析構(gòu)hello",有構(gòu)造函數(shù)的類創(chuàng)建實(shí)例化對(duì)象后會(huì)直接調(diào)用,調(diào)用后會(huì)刪除這個(gè)對(duì)象,這是析造函數(shù)會(huì)自動(dòng)調(diào)用,那不是應(yīng)該“構(gòu)造跟析造”這二個(gè)詞緊貼在一起的嗎,為什么會(huì)“析造”會(huì)在hello的后面,請(qǐng)大神詳解?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?!
2016-09-12
$car = new Car();
unset($car);// 手動(dòng)解構(gòu)
echo "hello";
應(yīng)該是程序沒有完結(jié)時(shí)這個(gè)對(duì)象還一直被占用吧
2016-09-12
<?php
class user{
? ? private static $count = 0 ; //記錄所有用戶的登錄情況.
? ? public function __construct(){
? ? ? ? self::$count = self::$count + 1;
? ? }
? ? public function getCount(){ ? ?
? ? ? return self::$count;
? ? }
? ? public function __destruct(){
? ? ? ? self::$count = self::$count -1;
? ? }
}
$user1 = new user();
$user2 = new user();
$user3 = new user();
echo "now here have ".$user3->getCount()." user";
echo "<br>";
unset( $user3);
echo "now here have ".$user2->getCount()." user";
?>
結(jié)果是:
now here have 3 user
now here have 2 user
實(shí)例化三次所以調(diào)用構(gòu)造函數(shù)三次結(jié)果是3,然后在unset顯式銷毀的時(shí)候會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)因此結(jié)果是2
2016-09-12
只有在頁(yè)面代碼全部執(zhí)行完畢后php才會(huì)釋放變量,然后調(diào)用析構(gòu)函數(shù),所以只有在echo"hello"執(zhí)行完畢后才會(huì)調(diào)用,所以結(jié)果是"構(gòu)造hello析構(gòu)"