这段代码在php中有快捷方式吗?

这段代码在php中有快捷方式吗?,php,Php,是否有任何可能的代码(可能是1-2行代码)替换上述代码,我记得使用“或”运算符来执行我正在使用此代码执行的操作。请尝试条件赋值运算符: <?php $s1="";$s2="qwe";$s3="zxc"; if(!empty($s1)) { $result=$s1; } else { if(!empty($s2)) { $result=$s2; } else { $result=$s3; } } ec

是否有任何可能的代码(可能是1-2行代码)替换上述代码,我记得使用“或”运算符来执行我正在使用此代码执行的操作。

请尝试条件赋值运算符:

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

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

echo "$result";
?>
如果PHP>5.3,甚至更短:

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

为什么要用这个

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

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

请使用以下代码:

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

输出: qwe


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

请注意:我的检查看起来像
$s1
,而不是
!空($s1)
,因为代码必须始终处理字符串,它执行的唯一检查是确定它们是否包含任何内容。所以在这种情况下,我给出的代码就足够了。但是,如果其他(更高级的)事情开始发生(例如,
$s1
或任何其他变量可能未定义),则应使用我给出的第一个代码,但使用
empty()
替换检查。在此之前,请确保您理解。
$result = $s1 ?: ($s2 ?: $s3);
$result = $s1 ? $s1 : ($s2 ? $s2 : $s3);
<?

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

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

?>