2013-06-26 44 views
4

在PHP中,如果我有這樣的三元:PHP三元操作符給了一個錯誤

$my_thing = $this->myAttribute ? $this->myAttribute : "No attribute was set."; 

可以把它簡寫這樣嗎?

$my_thing = $this->myAttribute ?: "No attribute was set." 

我以爲我記得PHP支持它的三元組,但現在我得到一個錯誤。

+0

您使用的是哪個版本的PHP? –

+3

可以這樣縮短,但如果'$ this-> myAttribute'不存在,您仍然會收到通知。 「發生錯誤」是什麼意思? – Jon

+1

「但現在我得到一個錯誤」---所以你爲什麼不分享它?我們應該猜測? – zerkms

回答

7

它支持PHP 5.3及更高版本。從PHP.net

從PHP 5.3開始,可以省略三元運算符的中間部分。表達式expr1?:如果expr1的計算結果爲TRUE,則expr3返回expr1,否則返回expr3。