根据 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 静态分析器会尝试避免这个。
我有一个功能基本上是这样的:
//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 静态分析器会尝试避免这个。