2011-03-27 57 views
1

這裏是我的if else語句正確三元條件IF elseif的條件

if(isset($row['content']) && strlen($row['content'])) { 
    $content = $row['content']; 
} 
elseif(isset($row['description']) && strlen($row['description'])) { 
    $content = $row['description']; 
} 

我試着用ternerary運營商創造條件,結束了一個錯誤:這是我的ternerary條件

$content = isset($row['content']) && strlen($row['content']) ? $row['content'] : isset($row['description']) && strlen($row['description']) ? $row['description'] : ''; 

什麼是正確的說法?

+1

'以錯誤結束'...究竟有什麼錯誤?此外,三元運算符不會增加任何額外的好處(除非它非常小且簡潔,儘管可爭論),但在這種情況下,if/else語句更具可讀性。 – 2011-03-27 07:57:53

+0

錯誤類型是「通知」,是「未定義索引:說明」 – mrN 2011-03-27 08:12:07

回答

2

試着把裏面的括號第一項?:和最後一項?:

$content = (isset($row['content']) && strlen($row['content'])) ? $row['content'] : ((isset($row['description']) && strlen($row['description'])) ? $row['description'] : ''); 
+0

哇,謝謝。有效。 – mrN 2011-03-27 08:13:48

+0

正是我需要解決的通知 – AdRock 2013-11-05 11:22:01

3

通過將條件更改爲三元運算符,使得代碼非常非常不可讀。 Anyhoo,以下作品沒有錯誤。

$content = (isset($row['content']) && strlen($row['content'])) 
     ? $row['content'] 
     : (isset($row['description']) && strlen($row['description']) 
      ? $row['description'] 
      : ''); 

裹最後一個表達式中括號所以PHP不會嘗試單獨評估。

+0

JohnP,你還可以看看我的最後一個問題,並幫助我解決該json錯誤 – mrN 2011-03-27 08:09:11

+0

錯誤'未定義的索引:說明'仍然遺骸 – mrN 2011-03-27 08:11:24