我想简写if if语句,但我的代码编辑器显示有错误。有什么问题?
我原来的if语句
<?php
if($shippingCost["ShippingCost"]['shipping_type'] == 'order_sum') {
echo $this->Format->money($shippingCost["ShippingCost"]['value_to']);
} else {
echo number_format($shippingCost["ShippingCost"]['value_to']);
}
?>
我的缺点版本
<?php
($shippingCost["ShippingCost"]['shipping_type'] == 'order_sum') ? //IDE error expected colon
echo $this->Format->money($shippingCost["ShippingCost"]['value_from']) : // IDE error expected semicolon
echo number_format($shippingCost["ShippingCost"]['value_from'])
?>
答案 0 :(得分:1)
请注意echo
没有任何返回类型。这就是为什么你应该使用print,或者在开头写回声。
<强> 1。在开头使用echo
echo ($shippingCost["ShippingCost"]['shipping_type'] == 'order_sum') ?
$this->Format->money($shippingCost["ShippingCost"]['value_from']) :
number_format($shippingCost["ShippingCost"]['value_from']);
<强> 2。使用print而不是echo
($shippingCost["ShippingCost"]['shipping_type'] == 'order_sum') ?
print $this->Format->money($shippingCost["ShippingCost"]['value_from']) :
print number_format($shippingCost["ShippingCost"]['value_from']);
答案 1 :(得分:1)
三元运算符是一个通用的短语if
语句,它只是一种返回表达式的简单方法。在这种情况下,您只能在表达式上使用三元组,并从中提取echo
:
echo ($shippingCost["ShippingCost"]['shipping_type'] == 'order_sum') ?
$this->Format->money($shippingCost["ShippingCost"]['value_from']) :
number_format($shippingCost["ShippingCost"]['value_from']);