2011-01-28 88 views

回答

22

在PHP 5.3中,你也可以這樣做:

$a = f() ?: 'default'; 

the manual on ?: operator

+3

+1 cuz我以前沒見過。整齊。 – 2011-01-28 19:24:33

+1

+1,因爲我沒有看到我的任何一本涵蓋PHP 5.3的書。非常好知道。 – Andrew 2012-06-21 18:13:22

6

這似乎很好地工作:

$x = f() or $x = 'default'; 
1
function f() 
{ 
    // conditions 
    return $if_something ? $if_something : 'default'; 
} 

$x = f(); 
+0

啊,很好的答案。我的意思是f()是我們無法控制的東西,實際上這對我來說並不是一個函數,而是`$ _REQUEST ['foo']`所以它不是一個函數效率問題就像打字問題一樣。 – dreeves 2011-01-28 19:23:26

0

您可以將它保存到一個變量。測試用例:

function test() { 
     echo 'here'; 
     return 1; 
} 

$t = test(); 
$x = $t ? $t : 0; 
echo $x; 
1
$x = ($result = foo()) ? $result : 'default'; 

test