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 = !empty($s1) ? $s1 : ( !empty($s2) ? $s2 : $s3 );
于 2012-09-19T05:36:59.247 回答
1
$result = $s1 ? $s1 : ($s2 ? $s2 : $s3);

为什么用这个?

因为它减少了程序的复杂性

注意:三元运算符是从左到右计算的。所以如果你没有正确地对表达式进行分组,你会得到一个意想不到的结果

于 2012-09-19T05:40:43.997 回答
0

使用此代码:

<?

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

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

?>

输出:qwe

是三元运算符。如果 $s1 不为空,则返回 $s1,否则再次检查 $s2 的条件,如果它也为空,则返回 $s3。

于 2012-09-19T05:44:38.457 回答