2016-02-25 55 views
1

這可能已被問到,但找不到我正在尋找的確切答案。PHP:檢查一個屬性是否存在或其值是否爲空字符串

在JavaScript中,我可以簡單地做

if (a.b) {//do something} 

但在PHP,如果我做

if($a->b) {} 

基本上它會工作,但我會得到一個通知,如果a沒有b,所以我切換到

if(isset($a->b)){} 

這是行不通的,因爲當a->b是一個空字符串,它將返回true。所以我結束了做

if(isset($a->b) && $a->b !== ''){} 

這似乎是多餘的,不是非常錯誤的證明。

這樣做的最佳做法是什麼?

+1

你可以使用PHP空(http://php.net/manual/en/function.empty.php),但也有可能索姆缺點,這一點。空檢查是否值爲空,空字符串,空數組爲0,還有幾個場景。完整列表在手冊中。 –

+0

我認爲這也會觸發關於試圖獲得非現有財產的通知 – shenkwen

+0

是的,你是對的!這應該是答案 – shenkwen

回答

1

empty檢查是否設置了變量幷包含數據。如果它爲空或未設置,它將返回true。

if(!empty($a->b)) {}

+0

而不是'if(isset($ a->)&&!empty($ a-> b)){}'嘗試'if(isset($ a )&&!empty($ a-> b)){}'(沒有'$ a'上的arryow) –

+0

爲什麼我不能使用'if(!empty($ a-> b)){}'?如果'empty'也檢查'isset'。 – shenkwen

+0

你完全可以...只是檢查了文檔,如果設置了var,我沒有意識到空的檢查。是的...只是用空:) –

相關問題