【发布时间】:2018-09-18 12:56:30
【问题描述】:
我正在使用 PHP 尝试通过将一个数字除以另一个数字来获得百分比。但是,如果任一数字为假,则默认结果应为 0.0。我正在使用三元运算来确定结果。但是,它似乎默认为最后一次计算,这显然等同于除以零错误。有什么想法吗?
代码:
$countOne = 3;
$countTwo = 0;
echo (! $countOne || ! $countTwo) ? 'true' : 'false';
$number =
(! $countOne || ! $countTwo) ?
0.0 :
($countOne > $countTwo) ?
$countTwo / $countOne :
$countOne / $countTwo;
echo $number;
我现在将使用 if 语句,但我不明白为什么上述方法行不通。
测试:http://sandbox.onlinephpfunctions.com/code/83f737ab27fb046a8eb9feb4992d5dd26340723d
【问题讨论】:
-
看起来真难看,你为什么不把它分开?
-
10 / 5与5 / 10不同,因此如果是 > 则将它们切换是没有意义的。您只是想防止除以 0 错误吗? -
$countTwo = 0,$countOne / $countTwo... ? -
那么就做
echo $countTwo === 0 ? $countOne : $countOne / $countTwo; -
@NicoHaase 你说得对,它很丑。我想我只是喜欢三元,讨厌if。我刚刚更改为 if 并且它工作正常。此外,它更易于阅读。 ??????
标签: php ternary-operator