我有以下代码,其中我有一个定义的值,但是当我尝试对它做任何简写方程时,它返回0.
$m = 1.10;
echo 'Markup Percentage : ' . ( $m > 1 ? ($m * 100) - 100 : 'N/A' ) + ' %';
结果:
标记百分比:0%
$m = 1.10;
echo 'Markup Percentage : ';
if($m > 1) {
echo ($m * 100) - 100;
} else {
echo 'N/A';
}
echo ' %';
加价百分比:10%
如果不明显,三元操作的结果应与标准操作相同。我做错了什么,或者这是php 5.4中的一个错误?
答案 0 :(得分:5)
这是因为操作员错误而发生的。 .
用于连接,而不是+
。试试 -
$m = 1.10;
echo 'Markup Percentage : ' . ( ($m > 1) ? (($m * 100) - 100) : 'N/A' ) . ' %';
但我建议在使用三元运算符时正确分组操作。对于所有运营商而言,不仅适用于三元。理解优先级非常重要。
echo 'Markup Percentage : ' . ( $m > 1 ? ($m * 100) - 100 : 'N/A' ) . ' %';
也应该有效。
答案 1 :(得分:1)
这是因为你在没有(
的情况下使用多次计算,所以他们搞砸了,另一个错误是你使用+
符号代替.
。
您可以使用下面的三元运算符:
$m = 1.10;
echo 'Markup Percentage : ' . ( ($m > 1) ? (($m * 100) - 100) : 'N/A' ) . ' %';
//OP: Markup Percentage : 10 %