我正在使用旧代码库,请参阅:
public static function blah($formData = array()) {
$x = null;
$y = null;
if ($formData['x'] || $formData['y']) {
$x = $formData['x'];
if ($formData['y'])
$y = $formData['y'];
return $x - $y;
}
//does some other stuff with x/y and then returns the result
}
显然,这段代码糟糕到无法忍受,但我不完全确定预期的效果应该是什么。我发现这个问题的原因是因为我在启用严格检查的环境中运行代码,并且该if
子句导致函数死亡,因为在调用该函数的至少某些实例中既没有也没有定义x
。y
如果没有严格检查,如果不定义子句中的变量之一,是否会跳过 if 块?