我有一个基本上是这样的功能:
//Init variable
$ready = FALSE;
//if submit
filter_input(INPUT_POST, "submit") ? $ready = TRUE : $ready = FALSE ;
//return the result
return $ready;
NetBeans警告我不要进行多项任务。在其他语言中,这是很正常的做法。这是我得到的唯一NetBeans警告。这段代码可以使用吗?
答案 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]