根据此页面上的示例,我有以下工作示例和非工作示例。
工作代码使用if
语句:
if (!empty($address['street2'])) echo $address['street2'].'<br />';
使用三元运算符的非工作代码:
$test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';
// Also tested this
(empty($address['street2'])) ? 'Yes <br />' : 'No <br />';
更新
在Brian提出技巧之后,我发现echo $test
输出了预期的结果。下面的作品很有魅力!
echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';
的
(condition) ? /* value to return if condition is true */
: /* value to return if condition is false */ ;
语法不是“ if的简写”运算符(?
称为条件运算符),因为您无法以与执行以下操作相同的方式执行代码:
if (condition) {
/* condition is true, do something like echo */
}
else {
/* condition is false, do something else */
}
在您的示例中,您echo
在$address
不为空时执行语句。使用条件运算符不能以相同的方式进行操作。但是,您可以做echo
的是条件运算符的结果:
echo empty($address['street2']) ? "Street2 is empty!" : $address['street2'];
并显示“街道为空!” 如果为空,则将显示street2地址。
Twig支持三元(简写if-else)运算符吗? 我需要一些条件逻辑,比如: 但是在Twig中使用速记。
问题内容: 如何用elseif部分编写PHP三元运算符? 我看到了带有PHP三元运算符和的基本示例,如下所示: 我如何将这样的“ elseif”部分放入三元运算符中? 问题答案: 三元不是您想要的一个很好的解决方案。它不会在您的代码中可读,并且有很多更好的解决方案可用。 为什么不使用数组查找“ map”或“ dictionary”,如下所示: 此应用程序的三元最终看起来像这样: 为什么这样不好?因
问题内容: 我一直不得不放置没有任何其他条件的其他条件。反正周围有吗?例如 基本上,有什么方法可以做: 现在它显示为语法错误 仅供参考,这是一些真实的示例代码: 问题答案: 首先,三元表达式不能替代if / else构造-它等同于 返回 值的if / else构造。也就是说,if / else子句是code,三元表达式是 expression ,表示它返回一个值。 这意味着几件事: 仅当在变量的左
问题内容: 我大量使用三元运算符,但似乎无法在内部相互堆叠多个三元运算符。 我知道堆叠多个三元运算符 会使代码的可读性降低, 但在某些情况下,我想这样做。 到目前为止,这是我尝试过的: 正确的语法是什么? 问题答案: 这些括号是我认为能带给您的。 尝试
问题内容: 我只想做这样的事情: 问题答案: 如果您使用的是freemarker 2.3.23或更高版本,则可以使用内置的: 如果您使用的是较早版本的freemarker,则可以改用内置的: 当应用于布尔值时,内置函数将充当三元运算符。
问题内容: 您能否解释一下为什么使用第一个返回类型无法编译代码?消息是:。 在第二种情况下是否插入了显式强制转换? 问题答案: 由于类型推断规则。我不知道为什么要 这么做 (您应该检查JSL 的三元运算符部分),但是看来三元表达式不能从返回类型推断出类型参数。 换句话说,三元表达式的类型取决于其操作数的类型。但是其中一个操作数的类型参数()不确定。那时三元表达式仍然没有类型,因此它不会影响类型参数