我加載了我的觀點,當運行到這個錯誤:未定義的變量時檢查,如果變量在Kohana的視圖定義
ErrorException [注意]:未定義的變量:錯誤
APPPATH \意見\ ADMIN \類別\ add.php [2]
<h3>Add</h3>
<?php if($errors): ?>
<p><?=$errors?></p>
<?php endif; ?>
如何對我的檢查無效?
我加載了我的觀點,當運行到這個錯誤:未定義的變量時檢查,如果變量在Kohana的視圖定義
ErrorException [注意]:未定義的變量:錯誤
APPPATH \意見\ ADMIN \類別\ add.php [2]
<h3>Add</h3>
<?php if($errors): ?>
<p><?=$errors?></p>
<?php endif; ?>
如何對我的檢查無效?
由於錯誤報告包含E_STRICT常量,所以PHP會拋出一個錯誤,如果指向未定義的變量,則會引發異常。
改爲使用isset() - 檢查變量是否存在(如果有可能不存在)是一個很好的做法。
正如科莫說你應該使用isset。實際上你在做的是檢查變量$errors
的值是否爲真/假。變量的不存在並不等於錯誤,你不希望它,你想拼寫錯誤等...拋出錯誤,而不是任何變量只是被認爲是空的,無論它是否被實際聲明。 isset
專門用於檢查變量的存在。由於你仍然想檢查它是否也評估爲真,你應該這樣做:
if(isset($errors) && $errors)
感謝您的解釋。當你說檢查'$ errors'基本上是要求對條件作出真/假響應時,這是有道理的。 – HyderA
請刪除這個答案,這樣我可以刪除這個問題。這很令人尷尬:( – HyderA
現在還有3個更多的答案,我會把自己從SO中刪除:P – Kemo
@gAMBOOKa不會感到不好,我們都有時候會犯蠢的屁股錯誤,只是在將來做更多的研究和三重檢查代碼之前,跳上SO來問:-) – Endophage