php - 为什么一些编码指南会更改 PHP if/else 中的条件顺序?

标签 php coding-style

一些编码准则规定您应该将要测试的变量放在条件的末尾:

// Incorrect
if($isSomething === FALSE) { // Do something }

// Correct
if(FALSE === $isSomething) { // Do something }

我知道有些程序员有在这样的条件下初始化变量的坏习惯:

if($results = $db->getResults() { // Do something if results exist }

所以我能想到的拥有这个违反直觉的规则的唯一原因是防止错误的重新初始化,以防万一您在 PHP 中不小心使用了一个等号 (=) 而不是两个等号。

还有其他原因吗?

最佳答案

你不能在你想比较的情况下意外地赋值。 这使得查找小错误变得更加容易。

if (FALSE = $isSomething) 将抛出错误,因为您无法重新分配常量 然而
if ($isSomething = FALSE) 将始终返回 true,您可能很长一段时间都不会注意到该错误。

关于php - 为什么一些编码指南会更改 PHP if/else 中的条件顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163429/

相关文章:

php - 是否有简单、开源的学习友好型 Web 应用程序?

C++ 风格 : Prefixing virtual keyword to overridden methods

android - 仅在 HTC Desire HD 上从主题设置文本颜色失败

javascript - 按钮以相同的形式调用另一个按钮的方法

php - 自 PHP 7.0.0 起不推荐使用 password_hash?

javascript - 函数定义在一行

C#:代码风格 - 成员位置

c++ - 我应该使用成员变量还是在函数内部声明变量?

php - SQL JOIN - 需要返回一个产品 ID,但返回其所有变体(例如尺寸、颜色)

php - 使用版本控制时在 codeigniter 应用程序中忽略哪些文件夹