因爲我是一個喜歡清晰,簡潔並且不易出錯的代碼的程序員,所以在使用它之前,我總是將變量分配一個默認值;我相信我們都知道爲什麼這是一個好主意。設置對象的初始值
然而,我覺得非常煩人的一種情況是,當涉及到預先設置用於保存對象的變量時。我還沒有找到合適的值得設定的初始值。
我覺得很重要的一點是,我也不喜歡依賴PHP的鬆散類型的功能。我不喜歡在它的壽命期間改變變量的類型,因爲我發現它是一個混亂的,容易出錯的猜謎遊戲。在過去,我將對象變量的初始值設置爲NULL,但這在PHP中並不是一個合適的值,因爲這會從變量表中除去變量並允許由GC收集變量;在使用它之前不會收集它的可能性,但它仍然看起來很髒。
這就是說,當你的變量持有一個對象時,你們將你的初始值設置爲什麼?
$foo_id = 0;
$is_foo = false;
$foo = '';
$obj_foo = NULL; // not really an appropriate initial value
編輯
爲了澄清爲什麼我覺得默認的值不應設置爲null,採取如下:
$obj_foo = null;
echo isset($obj_foo); // false
通常情況下,這會不會導致問題,但我可以看到這樣做的痛苦1%。
當您只是問人們如何做時,您如何確定接受哪個答案?那麼應該是一個CW。 – Gordon 2010-11-08 19:10:14
'NULL'沒有那麼糟糕,至少比未定義的變量更好。 – 2010-11-08 19:14:20
@戈登這是真的,應該是。當我發佈這個問題時,我沒有想到它。我在這裏是新的,不知道現在是否可以改變:/ – Craige 2010-11-08 19:18:22