魔術方法__construct()和__destruct()的用法是什麼。他們總是需要嗎?魔術方法__construct()和__destruct()的用法是什麼。他們總是需要嗎?
需要一個很好的簡單的答案,這是有點混亂。
魔術方法__construct()和__destruct()的用法是什麼。他們總是需要嗎?魔術方法__construct()和__destruct()的用法是什麼。他們總是需要嗎?
需要一個很好的簡單的答案,這是有點混亂。
關於__construct()
,它使您可以使用新創建的對象和來完成一些操作,以覆蓋父類的__construct()
方法。
因此它可能不是必需的,但是如果一個類擴展了另一個類,可能需要添加一個構造函數來避免自動調用父構造函數。
他們不是必需的。 構造函數在初始化時調用,即創建/構造對象時。 毀壞被稱爲清理。
實施例:
class Foo
{
function __construct()
{
echo "start";
}
function __destruct()
{
echo "end";
}
}
$foo = new Foo(); // outputs start
echo ' : ';
unset($foo); // outputs end
echo ' ! ';
上面的片段輸出start : end !
。如果清理時,我們不使用unset
析構函數仍然會在腳本的末尾被調用,輸出將被:start : ! end
鏈接
顯示錯誤的輸出。 –
@ArshadHussain應該爲你工作。試試這裏的代碼片段:http://writecodeonline.com/php/ – superhero
當我們不使用unset($ foo)時,輸出「end」也會發生; –
我對結構最常見的用法是將類變量初始化爲默認值。儘管如此,我還沒有必要使用破壞。
謝謝你的簡單解釋,那麼__destruct()怎麼樣,你能用簡單的方式來描述嗎? – user1383080
@ user1383080對'__destruct()'我沒有那麼多用處,它在你銷燬你的對象時做它告訴它做的事情,在我的情況下幾乎總是當腳本結束時,當我不想要時反正做任何事情...... – jeroen