PHP三元运算符语法错误

PHP三元运算符语法错误,php,scripting,Php,Scripting,为什么这个回声是0?我正在查看我编写的JavaScript代码,没有发现逻辑上的差异。由于操作员的优先级,您的代码打印0 这个很好用: <? $percent = 105; $percent = ($percent > 100) ? 100 : ($percent < 0) ? 0 : $percent; echo $percent; ?> 在PHP中,与JS和许多其他语言相比,。这意味着您的表达式与 <?php $percent = 105

为什么这个回声是0?我正在查看我编写的JavaScript代码,没有发现逻辑上的差异。

由于操作员的优先级,您的代码打印0

这个很好用:

<?
$percent = 105;
$percent = ($percent > 100) ? 100 :
           ($percent < 0) ? 0 : $percent;
echo $percent;
?>

在PHP中,与JS和许多其他语言相比,
。这意味着您的表达式与

<?php
$percent = 105;
$percent = ($percent > 100) ? 100 : (($percent < 0) ? 0 : $percent);
echo $percent;
很明显,结果是零

建议:千万不要写没有括号的复杂表达式。将paren放在适当的位置将使代码在JS和PHP中都能工作,并且可以说也使代码更易于阅读。本着同样的精神,我向自己保证,在同一个表达中,绝不会使用超过一个三元的词。您可能也想这样做。

这就是您想要的:

$percent = 100 ? 0 : $percent;

啊,给你。谢谢乔恩·斯诺!当锁定解除时,我们将接受这个。阅读并发现更多类似的宝石。
$percent = 100 ? 0 : $percent;
$percent = ($percent > 100 ? 100 : ($percent < 0 ? 0 : $percent));
$percent = min(100, max(0, $percent));