2012-09-13 24 views
1

是否有另一種寫這樣的東西的方法?PHP如果速記變化與三元相似

$var2 = ($var1) ? $var1 : 'bar'; 

例..

$var1 = 'foo'; 
$var2 = ($var1) ? $var1 : 'bar'; 
echo $var2; //Outputs foo 

$var1 = false; 
$var2 = ($var1) ? $var1 : 'bar'; 
echo $var2; //Outputs bar 

我希望

$var2 = $var1 || 'bar'; 

會的工作,因爲我認爲我之前見過的,但它沒有。有任何想法嗎?

謝謝!

回答

-2

之前沒有PHP 5.3。

如果與5.3之前版本的PHP兼容很重要,我建議您製作一個方法;

function b($a, $b) { return $a?$a:$b; } 

B爲最好,以及是短。

用法:自PHP 5.3

echo b($username, "Not logged in"); 
+1

答案是不是真的從5.3 – lanzz

1

幾乎正確。由於PHP 5.3(我相信)有一個新的構造:

<?php 
$foo = false; 
$foo = $foo ?: 'bar'; 

echo $foo; // $foo is now "bar".