php中此代码的任何快捷方式?

时间:2012-09-19 05:33:54

标签: php

<?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 个答案:

答案 0 :(得分:6)

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

甚至更短,如果你有PHP&gt; 5.3:

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

更多:PHP Manual part about Ternary Operator

答案 1 :(得分:1)

尝试使用条件赋值运算符:

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

答案 2 :(得分:1)

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

为什么要用这个?

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

注意:从左到右评估三元运算符。因此,如果您没有正确地对表达式进行分组,您将得到意外的结果

答案 3 :(得分:0)

使用此代码:

<?

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

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

?>

输出: QWE

这是三元运营商。如果$ s1为非空,则返回$ s1,否则再次检查$ s2的条件,如果它也为空,则返回$ s3。