首页 > 解决方案 > PHP - 条件 AKA Yoda 表示法中的值顺序

问题描述

原始问题

我前段时间在一篇文章中读到,我发现在进行比较时,由于某种原因,订单很重要。
我找不到任何关于 PHP 中比较顺序的信息。
它显然不会产生巨大的变化,但我很想知道这是否有任何优点。

在我正在进行的整个项目中,比较是按$x === true.
以相反的顺序进行比较有什么区别true === $x吗?

结论

显然我在原始问题中提到的是一种称为“尤达条件”的编程风格。
这个wiki 页面很好地解释了这种风格。
这个答案让我理解了这个概念,只是注意那里有一个小错误。

这是我的看法:

使用这种风格的主要原因是避免=在您打算与 比较时意外分配 with ==

总而言之,我认为 Yoda 表示法的优点在于它强调了条件下的比较和赋值之间的区别。

标签: php

解决方案


这些被称为“尤达比较”。因为这并不重要,但请考虑一下=====

if($a = 0)

在这种情况下$a被设置为零,不进行比较。此外,您认为您正在进行的比较根本不会评估,但比较操作将继续进行,就好像进行了比较一样。翻转它总是会失败:false

if(0 = $a)

现在会抛出一个错误。


推荐阅读