根据NetBeans警告,多次分配变量是不是很糟糕?

时间:2015-05-07 05:53:26

标签: php netbeans standards

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

        //Init variable
    $ready = FALSE;

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

        //return the result
    return $ready;

NetBeans警告我不要进行多项任务。在其他语言中,这是很正常的做法。这是我得到的唯一NetBeans警告。这段代码可以使用吗?

4 个答案:

答案 0 :(得分:2)

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

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

并且您将了解为什么Netbeans会产生这些警告。

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

  • 决定根据条件分配给变量的值,而不依赖于较长的if/else构造
  • 根据条件调用函数或其他函数,再次缩短代码

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

答案 1 :(得分:0)

您可以将代码重写为少一点,Netbeans不会偏袒你:

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

答案 2 :(得分:0)

轻微滥用语法。尝试:

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

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

答案 3 :(得分:0)

您可以将代码简化为单个作业,因此您甚至不需要三元运算符:

PASSED: mockTest
FAILED: mockTest2
java.lang.AssertionError: expected [Mocked - input] but found [null]