對PHP有了一定了解的程式猿們,看到 ?: 這個東西的時候,並不會感到陌生,他就是很屌的一個語法結構:三目運算子。
三目運算子的用法如下:
(expr1) ? (expr2) : (expr3)
當 expr1 為 true 的值。
不過從 PHP 5.3 版本開始,三目運算子已經不限於上面的運算方式了。他還可以這樣用:
(expr1) ?: (expr2)
也就是將 ?: 連在一起了。 如果採用此用法,則當 expr1 為 true 的時候,將會回傳 expr1 本身,當 expr1 為 false 的時候,著則傳回 expr2 的值。
這是一個相當有用的寫法,所以 Hy369 就迫不及待地要把這個寫入自己的 PHP博客中,以方便各位朋友知曉了!
特別提醒: 注意三元運算子是個語句,因此其求值不是變量,而是語句的結果。如果想透過引用回傳一個變數這點就很重要。在一個透過引用傳回的函數中語句 return $var == 369 ? $a : $b; 將不起作用,以後的 PHP 版本會為此發出警告。
以上就是筆記015 PHP中?:的特殊用法的內容,更多相關內容請關注PHP中文網(www.php.cn)!