1

この三項演算子の使用に混乱しています。たとえば、1 レベルの if と else を簡単に取得できます。

($blah == $blah) ? blahblah : blahblahblah;

しかし、このような条件の場合はどうでしょうか。

if($blah == blah1)
{ 
  echo $blah1;
}
else if($blah == blah2)
{
 echo $blah2;
}
else
{
 echo $blah;
}

三項演算子を使用してこれを変換する方法は?

4

4 に答える 4

5
<?php echo $blah == 'blah1' ? $blah1 : ($blah == 'blah2' ? $blah2 : $blah); ?>

elseが括弧で囲まれていることに注意してください。読むのが混乱しますが、これは何度でも行うことができます。

于 2012-11-23T00:33:01.973 に答える
3

ネストされたターナリは悪い考えです。簡潔にするために提供されています。ネストされた条件がある場合、定義上、簡潔さはありません。

あなたが簡潔な声明を持っているとき、何人かの人々はそれらの使用さえ好きではありません。if個人的には、以下はベースの代替案よりも明確で読みやすいと思います。

echo $success ? 'Success' : 'Failure';

しかし、私はそれよりも複雑なことをするのをためらうでしょう。

于 2012-11-23T00:34:12.260 に答える
1

($ blah == $ blah1)?$ blah1:(($ blah == $ blah2)?$ blah2:$ blah);

于 2012-11-23T00:34:22.527 に答える
0

次のようになります。

echo (($blah == $blah1) ? $blah1 : (($blah == blah2) ? $blah2 : $blah);
于 2012-11-23T00:34:24.410 に答える