条件分配

Duo*_*SRX 5 php

我最近看过很多这样的代码:

if ($foo = $bar->getFoo())
{
    baz($foo);
}
Run Code Online (Sandbox Code Playgroud)

这被认为是好的还是坏的做法?

例如,如果您使用此类代码,Netbeans IDE会发出通知:

应避免可能的意外分配,条件分配

你怎么看 ?

Rob*_*son 4

这是一个有用的工具,我不得不承认有时会使用它来避免作业中出现额外的行。一方面,这对某些人来说可能是不好的做法,因为:

  • 这不是其他常见语言中可用的习语
  • 可读性较差

另一方面:

  • 隐式布尔转换不会在其他语言中发生,但它们在存在的地方被广泛依赖。相反,条件赋值运算符存在于 Ruby 和 Javascript(作为示例)中,但不存在于 PHP 中。我们是否应该将语言结构的使用仅限于所有相似语言中的语言结构?可能不会。
  • 对谁来说可读性较差?

我应该指出,我确实试图避免它,因为我发现它在大多数情况下可读性较差,但这纯粹是我个人的偏好。我发现它有用的地方,我就使用它。