Kra*_*ime 1 php ternary-operator
我有以下代码,其中我有一个定义的值,但当我尝试对它做任何简写方程时,它返回0.
$m = 1.10;
echo 'Markup Percentage : ' . ( $m > 1 ? ($m * 100) - 100 : 'N/A' ) + ' %';
Run Code Online (Sandbox Code Playgroud)
结果:
加价百分比:0%
$m = 1.10;
echo 'Markup Percentage : ';
if($m > 1) {
echo ($m * 100) - 100;
} else {
echo 'N/A';
}
echo ' %';
Run Code Online (Sandbox Code Playgroud)
加价百分比:10%
如果不明显,三元操作的结果应与标准操作相同.我做错了什么或者这是php 5.4中的一个错误?
这是因为错误的操作员而发生的..用于连接,而不是+.尝试 -
$m = 1.10;
echo 'Markup Percentage : ' . ( ($m > 1) ? (($m * 100) - 100) : 'N/A' ) . ' %';
Run Code Online (Sandbox Code Playgroud)
但我建议在使用三元运算符时正确分组操作.对于所有运营商而言,不仅适用于三元.理解优先级非常重要.
echo 'Markup Percentage : ' . ( $m > 1 ? ($m * 100) - 100 : 'N/A' ) . ' %';
Run Code Online (Sandbox Code Playgroud)
还应该工作.