2013-07-21 108 views
-4

注意:未定義的變量:在記錄儀...在線20注意:未定義的變量:記錄

if (!is_object($logger)) $logger = new logger; 

/application_bottom.php我通過

if (!is_object('logger')) $logger = new logger; 

但是,爲什麼解決了這個?有人可以解釋這種

+0

您的解決方案不正確。它會一直創建一個新對象並將其放置在$ logger中 –

+1

您會收到通知,因爲在您調用$ logger之前沒有定義它。在字符串上調用'is_object'將始終返回false。不好的解決方案。你應該做一個'isset'。 – tlenss

回答

1

以下條件:

if (!is_object('logger')) 

基本上問「如果一個對象的字符串‘記錄’。」這將始終返回false,而不是正確的解決您的問題。你可以使用的isset()is_object()的組合來實現你想要的:

if (!(isset($logger) && is_object($logger))) $logger = new logger; 

你有你的錯誤,因爲運行時is_object(),受如果$logger設置cheking並使用&&操作$logger沒有定義你要確保如果isset()返回false,那麼is_object()將不會運行。

+0

感謝您的改進和背景信息。問題解決了。 – Simpel