php - PHP逻辑操作不一致
问题描述
$a = 0;
if($a == ++$a) // Evaluates to true
if($a > $a++) // Evaluates to true
在c中运行的相同代码的计算结果为 false。
这怎么可能?
解决方案
++$a
将 的值加$a
一,然后将新值“返回”到表达式的该位置。
$a == ++$a
– 所以++$a
使它成为1
,然后将其与 的当前值进行比较$a
,该值已经 1
在该点上。
$a++
反过来工作 - $a 的当前值返回到表达式中,只有在那之后才会$a
增加 - 所以对于第二个,你有效地在1 > 0
这里。
($a > ++$a
取而代之$a
的是首先增加,所以这将是1 > 1
有效的,导致false
。)
推荐阅读
- php - 将毫秒转换为分钟:得到不正确的结果
- html - Required attribute in multi step form
- webforms - 报告查看器 14 错误:无法加载表达式宿主程序集
- scala - 在 gradle 中使用 sbt Avrohugger 插件
- c# - jqgrid loadError没有触发
- for-loop - for循环中矩阵的特征值
- python - 熊猫数据框索引值作为对象而不是日期时间
- javascript - 如何使用模式和匹配器在java中查找子字符串=“\\r”在字符串=“这是一个\\\\\\rtest \\n\\r字符串”中的出现
- javascript - 如何通过自定义函数使用 Lodash orderby?
- java - 我想知道为什么 FinalizerReference 在我的应用程序中消耗这么多内存