2015-12-07 72 views
0

我剛剛遇到一個對我來說很新的問題,我找到了兩個解決方案......這個問題基本上就是找到一個更好或更乾淨的問題!php:if property does not exist

在我的數據庫中,我爲每個用戶存儲一些關於他每日日程安排的首選項。用戶連接的第一次,DB沒有任何相關信息,所以我運行此代碼:

if(!empty($opening_h->{'lunch'}) == true) 
{ 
    if($opening_h->{'lunch'} == 1) 
    { 
     echo 'checked'; 
    }; 
}; 

PS:裏面還有多個值,以JSON格式編碼。

有沒有更好的方法?另一個我能想到的將寫

lunch => 0, dinner => 0 

當用戶註冊到平臺......但這似乎很愚蠢。

感謝您的幫助!

+0

我個人使用'!empty';檢查0可能會導致問題,如果它爲空? – BFWebAdmin

+0

我不會遇到空情況,因爲db字段是空的,或者所有的情況都是由true或false定義的。 那麼有沒有更短的路? – YannickHelmut

回答

0

我會建議使用__isset魔術方法在你的類$ opening_h檢查屬性是否存在第一,如果沒有做一些事情。然後,當你確信你的屬性存在,你可以很容易地編寫類似:

if($opening_h->{'lunch'} == 1) { 
    echo 'checked'; 
}; 

隨着__isset現在看起來簡單。

+0

這是如何處理空記錄? – BFWebAdmin

+1

如果該值爲null,那麼條件$ opening_h - > {'lunch'} == 1不會拋出任何錯誤,並且同時會失敗。如果需要專門處理空值,則可以在條件中使用is_null() – onerror

相關問題