2015-07-09 43 views
0

我使用Smarty的模板系統,我試圖爲一個if語句PHP的if語句檢查某個不確定的對象

{if isset($left_column_size) && !empty($left_column_size) && $category->name ne "Health"} 

這工作做,但如果沒有類別對象設置爲指定的頁面,我得到的價值PHP的通知:
未定義指數:
類 試圖讓非對象的屬性

我真正想要的是什麼如下

{if isset($left_column_size) && !empty($left_column_size) {if isset($category)}&& $category->name ne "Health"{/if}} 

如果我嘗試這個,我得到錯誤Smarty編譯器:模板中的語法錯誤代碼太多的速記屬性。有誰知道在這裏做正確的事情來擺脫這些PHP錯誤通知是?謝謝

+0

)' - '空( )'在未定義的var上將返回'false'並且不會發出警告/通知。 –

+0

我嘗試使用&&空($ category-> name eq「Health」)'仍然獲得所有相同的php通知 – Trey

+0

,但empty()也會在「false-y」值上返回true,所以'left-size = 0 '會返回誤報。 –

回答

1

它看起來像你在正確的軌道上。試試沿着這些線路

if(!empty($left_column_size) && 
    ((!empty($category) && $category->name ne "Health") 
    || empty($category)) 
+0

關於這一點的事情是,我也需要它在$ category爲空時工作。 – Trey

+0

謝謝你讓我走在正確的軌道上 – Trey

+1

@Trey編輯。更類似的東西? – mjohns

0

我結束了做解決這個:如果您在使用`空()`你不需要`isset(

{if isset($left_column_size) && !empty($left_column_size) && 
(empty($category) || (!empty($category) &&$category->name ne "Health Topics"))}