2012-11-08 28 views
0

echo可變$a如果它被設置,或echo可變$b如果變量$a沒有設置。打印變量1或2可變取決於如果變量1被設置或不

我試過的東西,但預期它不工作:

<? 
    $a = "FOO"; 
    $b = "BAR"; 
    $c = $a OR $b; 
    echo $c; #output : FOO 

    // 

    $a = false; 
    $b = "BAR"; 
    $c = $a OR $b; 
    echo $c; #output : 
    ?> 

我可以用一個函數來完成它,就像

function F($a,$b) { 
     if($a) return $a; 
     return $b; 
    } 

或使用本:

$c = $a ? $a : $b; 

也許有更好的方法來做到這一點。我想要最快的方式來完成這一點。

回答

1

這是最接近你正在嘗試做的事:

$c = $a ?: $b; 

(這是在JavaScript類似於$c = $a || $b

注意,這個假設變量的實際設置。如果他們沒有設置(即根本不存在),你應該真的使用isset

+0

這真棒:)謝謝 – John

1

你問正確的if it is set < - isset()

所以

$ C = isset($ A)? $ a:isset($ b)? $ b:'兩個都沒有設置';

1

根據me $ c = $ a? $ a:$ b;是最好的方式

+0

謝謝,但這樣:$ a?:$ b似乎更短:) – John