2
<?php
$s1="";$s2="qwe";$s3="zxc";

if(!empty($s1))
{
    $result=$s1;
}
else
{
    if(!empty($s2))
    {
        $result=$s2;
    }
    else
    {
        $result=$s3;
    }
}

echo "$result";
?>

上記のコードを置き換える、おそらく1〜2行の可能なコードはありますか?このコードで行っていることを実行するために「または」演算子を使用するようなことを覚えています。

4

4 に答える 4

6
$result = $s1 ? $s1 : ($s2 ? $s2 : $s3);

または、PHP > 5.3 を使用している場合は、さらに短くなります。

$result = $s1 ?: ($s2 ?: $s3);

詳細:三項演算子に関する PHP マニュアルの一部

于 2012-09-19T05:37:10.563 に答える
1
$result = $s1 ? $s1 : ($s2 ? $s2 : $s3);

なぜこれを使うのですか?

プログラムの複雑さを軽減するため

注:三項演算子は左から右に評価されます。したがって、式を適切にグループ化しないと、予期しない結果が得られます

于 2012-09-19T05:40:43.997 に答える
1

代入演算子を条件付きで試してください:

$result = !empty($s1) ? $s1 : ( !empty($s2) ? $s2 : $s3 );
于 2012-09-19T05:36:59.247 に答える
0

このコードを使用します:

<?

$s1="";
$s2="qwe";
$s3="zxc";

echo $result = ($s1!="") ? $s1 : ( ($s2!="") ? $s2 : $s3);

?>

出力:qwe

三項演算子です。$ s1が空でない場合は、$ s1を返します。そうでない場合は、$ s2の条件を再度チェックし、それも空の場合は$s3を返します。

于 2012-09-19T05:44:38.457 に答える