2011-01-28 11 views

答えて

22

、あなたも行うことができます。

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

the manual on ?: operatorを参照してください。

+3

+1私は前にそれを見たことがない。きちんとした –

+1

+1 PHP 5.3をカバーする私の本で使われているのを見たことがないので。非常に知って良い。 – Andrew

6

これは正常に動作するようです:PHP 5.3で

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

$x = f(); 
+0

ああ、良い答え。私はf()が私たちが制御できないものであることを意味しました。実際にはこれが私のために出てきた方法では '$ _REQUEST ['foo']'以外の関数ではありませんでした。タイピングの問題と同じくらい効率的な問題です。 – dreeves

0

変数に保存できます。テストケース:

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

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

test

+0

これはうまくいきますが、一時変数を持たずにもっときちんと実行できるようです。 – dreeves