2009-10-27 61 views
-1

來自模塊化的PHP編程環境我習慣了在PHP中使用變量,而不考慮它們是否被實例化。如何在codeigniter中使變量聲明可選?

我一直在使用codeigniter一個月左右,並注意到它嚴格執行不使用變量,如果他們是未定義/未聲明。

我想知道這背後的目的是什麼,它不同於對未聲明的變量不嚴格嚴格嗎?

有沒有一種方法,我可以在codeigniter中禁用此功能,以防止我更願意使用未聲明的變量?如果是這樣,我會得到什麼好處?

+0

<笑話>關閉你總是可以恢復到PHP 4! <笑話/ > 出於好奇,你能舉個例子說說你在說什麼嗎?我相當肯定,如果你試圖在PHP中解決任何地方的變量值,它將拋出一個空指針異常。 – cwallenpoole 2009-10-27 05:53:25

+0

你是什麼意思,它不是可選的?由於CI打開調試程序,您是否突然看到很多警告? – deceze 2009-10-27 06:00:20

回答

2

初始化所有變量的一個重要原因是安全性。如果你有register_globals(你不應該),那真的很重要。但即使除此之外,如果變量總是處於已定義的已知狀態,那麼它是很好的樣式和輔助調試。如果你養成了始終初始化變量的習慣,並突然發出使用未初始化變量的警告,那麼你知道這是由於打字錯誤造成的,而不是其他原因之一。另一個原因是在較長的函數中可變回收(你應該儘量避免,但如果你不重新初始化變量會變得非常混亂)。

由於使用未初始化的變量是語言「功能」,它仍然在CodeIgniter中可用。 CI可能會將默認error reporting level設置爲比您以前更高,這可能會導致比以前更明顯的警告。


如果這不是你的意思,請澄清你的問題。

0

無法初始化變量es是對每個無實際意義的變量發生隱藏的E_NOTICE錯誤。這就造成不必要的開銷相當數量的因爲系統必須處理一個E_ERROR的每個實例,無論它是否登錄或的error_reporting()