PHP嵌套IF-ELSE速记

PHP嵌套IF-ELSE速记,php,conditional-operator,Php,Conditional Operator,我试图根据变量的值显示正确的结果,但我使用的是速记 我尝试了以下方法,但它似乎忽略了第一次检查,即使值是正确的 (!empty($national_ID_number)) ? $national_ID_number : (!empty($foreign_ID_number)) ? $foreign_ID_number : $temporal_permit_number) 谢谢这段代码对我来说是正确的,你似乎添加了额外的括号 $nation

我试图根据变量的值显示正确的结果,但我使用的是速记

我尝试了以下方法,但它似乎忽略了第一次检查,即使值是正确的

(!empty($national_ID_number)) ? 
    $national_ID_number : 
    (!empty($foreign_ID_number)) ?
        $foreign_ID_number  : 
        $temporal_permit_number)

谢谢

这段代码对我来说是正确的,你似乎添加了额外的括号

$national_ID_number = '';
$foreign_ID_number = 2;
$temporal_permit_number = 3;
$finalID = (!empty($national_ID_number)) ? $national_ID_number : (!empty($foreign_ID_number ) ? $foreign_ID_number  : $temporal_permit_number);
echo $finalID;

我只是做了一点深入的研究——显然,每个条件都需要在括号内,下面的修复很好

(!empty($national_ID_number)) ? 
    $national_ID_number : 
    ((!empty($foreign_ID_number)) ?
        $foreign_ID_number  : 
        $temporal_permit_number));

并且

您是否可以发布所使用的所有变量的var转储?使用多个条件时,简短的if/else语法不明显。它们并不像你想象的那样从左到右。在这种情况下,我建议使用标准的if/else条件。否则,您需要使用括号强制每个条件的优先级达到您期望的值。天哪。不要这样写代码——它会让你的人类同胞眼睛流血。将其拆分为两个嵌套的if()s。三元运算符适用于每段最多一个项目(不是技术上的,而是实际问题)。如果您需要使用三元运算符做的不仅仅是一个简单的
If/else
,那么我强烈建议您改用适当的If/else结构,因为三元运算符很快就会变得难以阅读/理解。(可读性和“紧凑”代码一样重要(如果不是更重要的话)。我只是做了一些深入的研究,这是你在提问之前应该做的事情。