2011-06-18 78 views

回答

6

你可能想給這一個嘗試:

isset Manual

,或者你實際上可以顯示在你沒有設置錯誤View對象(可能的內部控制器代碼條件)。

+0

請刪除這個答案,這樣我可以刪除這個問題。這很令人尷尬:( – HyderA

+3

現在還有3個更多的答案,我會把自己從SO中刪除:P – Kemo

+2

@gAMBOOKa不會感到不好,我們都有時候會犯蠢的屁股錯誤,只是在將來做更多的研究和三重檢查代碼之前,跳上SO來問:-) – Endophage

0

未定義的變量意味着它不存在。你可以只把它包裝內isset()做你想做的事:

<?php if(isset($errors)): ?> 

Isset是爲數不多的語言結構上未設置變量的工作沒有給予警告/錯誤之一。另一個是empty()

-2

由於錯誤報告包含E_STRICT常量,所以PHP會拋出一個錯誤,如果指向未定義的變量,則會引發異常。

改爲使用isset() - 檢查變量是否存在(如果有可能不存在)是一個很好的做法。

1

正如科莫說你應該使用isset。實際上你在做的是檢查變量$errors的值是否爲真/假。變量的不存在並不等於錯誤,你不希望它,你想拼寫錯誤等...拋出錯誤,而不是任何變量只是被認爲是空的,無論它是否被實際聲明。 isset專門用於檢查變量的存在。由於你仍然想檢查它是否也評估爲真,你應該這樣做:

if(isset($errors) && $errors) 
+0

感謝您的解釋。當你說檢查'$ errors'基本上是要求對條件作出真/假響應時,這是有道理的。 – HyderA