2013-03-17 4 views
5

||を使用してエコーすることができるので、真と評価される最初の変数が使用されますか?||演算子は、PHPで非ブール型の値の間で選択するために使用されますか?

例えば、

$a = false; 
$b = 'b'; 
echo $a || $b || 'neither'; // evaluates to 1 ? 
+1

リストが2つ以上ある場合は、以下を考慮する必要があります: 'echo current(array_filter(array、$ b、 'both')));' – mario

+1

質問は「||演算子を非論理型で使用できますか?もし私がそれを正しく理解すれば。あなたは、$ a || $ b || 'どちらも返されていません。' –

+0

@MartinAtkinsはいそれは理想的でしょう! –

答えて

5

Ternary operator

echo (($a) ? : $b) ? : 'neither'; 
+0

技術的には、それは三元演算子ではありません。 '$ a? $ b:$ c'はそれが3つのオペランドを持つ(そして他の標準演算子がないので)呼び出されます。 '$ a?:$ b'は三項演算子のように見えて動作する二項演算子です。 ' ' – IMSoP

+0

文書ではまだそれを三項演算子'と呼びます。 –

+0

恐ろしいです!ありがとう! –

1

究極の三元

$a = false; 
$b = 'b'; 
echo ($a)?$a:(($b)?$b:'neither'); 
1
echo $a ? $a : ($b ? $b : ($c ? $c : 'neither')); 

とより多くの変数を持っている場合は、このように上に行くが、それは醜い取得し、難しい長すぎるときに読む。

関連する問題