根据 NetBeans 警告,多次分配一个变量真的是不好的做法吗?

Is it really bad practice to assign a variable multiple times, as per a NetBeans warning?

我有一个功能基本上是这样的:

        //Init variable
    $ready = FALSE;

        //if submit
    filter_input(INPUT_POST, "submit") ?  $ready = TRUE : $ready = FALSE ; 

        //return the result
    return $ready;

NetBeans 警告我不要进行多项分配。在其他语言中,这很正常。这是我收到的唯一 NetBeans 警告。这个代码可以用吗?

你可以重写你的代码少一点,Netbeans 不会偏执你:

$ready = filter_input(INPUT_POST, "submit") ?  TRUE : FALSE; 
return $ready;

轻微的语法误用。尝试:

$ready = filter_input(INPUT_POST, "submit") ? true : false;

此时$ready 必须为 true 或 false,因此无需事先初始化为 false。

您可以将代码简化为单个赋值,这样您甚至不需要三元运算符:

$ready = filter_input(INPUT_POST, "submit");

将三元运算符 ?: 视为函数调用:

$var = decideOnValue($condition, $valueIfConditionTrue, $valueIfConditionFalse);

您就会明白为什么 Netbeans 会生成这些警告。

?:运算符的常见用法是:

  • 根据条件决定分配给变量的值,而不求助于更长的 if/else 构造
  • 根据条件再次调用一个函数或另一个函数以缩短代码

做更多的事情是危险的,因为它会导致错误。对于您的特定示例,如果您有错字并且错误地编写了 $redy = FALSE 那么您会引入一个微妙的错误,即使代码在语法上是正确的,并且 Netbeans 附带的 PHP 静态分析器会尝试避免这个。