当前位置: 首页 > 面试题库 >

在PHP中相应的嵌套三元运算符?

姬墨竹
2023-03-14
问题内容

我想将以下内容转换if else conditionnested ternary运算符。

if ($projectURL) {
    echo $projectURL;
} elseif ($project['project_url']) {
    echo $project['project_url'];
} else {
    echo $project['project_id'];
}

我写得像下面。

echo ($projectURL)?$projectURL:($project['project_url'])?$project['project_url']: $project['project_id'];

但是发现它不能正常工作,这不是正确的方法吗?


问题答案:

在PHP中,三元运算符是棘手的事情,因为它们是左关联的(不同于所有其他语言都是右关联的)。在这种情况下,您将需要使用括号告诉PHP您到底想要什么:

echo ($projectURL ? $projectURL : ($project['project_url'] ? $project['project_url'] : $project['project_id']));


 类似资料:
  • 问题内容: 我不明白该输出(“ ”)是怎么来的? 我不明白为什么打印“ ”。 问题答案: 您需要将三元条件括起来: 返回: 如您所愿。 请参阅PHP三元运算符帮助的“三元运算符”底部的注释。 表达式从左到右进行求值。因此,您实际上得到了: 因此,您得到: 然后 然后 然后 等等。 请记住,PHP是动态类型的,并将任何非零,非空值都视为TRUE。

  • 问题内容: 我一直在尝试使用嵌套形式,如下所示: 但似乎我缺少了一些东西。谁能协助我该怎么做? 问题答案: 将其括在括号中: 甚至更好的是,使用适当的/ 语句(出于可维护性): 但是,正如其他人指出的那样:使用起来更简单:

  • 问题内容: 这是我写的: 但是对于每个领域我都有价值。我想使用三元运算符,而不是因为我想尝试一下,看看它会如何完成。 此代码有什么问题? 问题答案: 其他人已经提出了正确的方法,但是如果您真的想使用三元运算符,则需要使用括号:

  • 这是我写的: 但是对于每个字段,我都得到值。我想使用三元运算符,而不是,因为我想试验一下,看看它是如何实现的。 这个代码有什么问题?

  • 问题内容: 为什么最后一个语句无法编译为错误:,并且有一种方法可以修改结构或扩展运算符以对嵌套数组(或字典)执行相等性检查? 问题答案: 更新: 条件一致性已在 Swift 4.1中 实现 。 特别是: 现在,标准库类型Optional,Array和Dictionary的元素类型符合Equatable时,它们便符合Equatable协议。… (来自Swift CHANGELOG)。 现在可以任意嵌

  • 问题内容: 有人可以解释PHP中的三元运算符速记()和空合并运算符()之间的区别吗? 它们什么时候表现不同,什么时候以相同的方式表现(如果甚至发生)? VS。 问题答案: 当您的第一个参数为null时,它们基本相同,不同之处在于,当您有未定义的变量时,null合并不会输出。在PHP7.0迁移的文档有这样一段话: 对于需要将三元数与isset()结合使用的常见情况,已将空合并运算符(??)添加为语法