我已经退出PHP编程一段时间了,但我几乎可以肯定我曾经能够编写如下内容:
function checkData($data, $moreData) {
if ($foo != validate($data)) {
return false;
}
if ($bar != validate($moreData)) {
return false;
}
$result = "$foo" . "$bar";
return $result;
}
......其中" $ foo"和" $ bar"尚未确定尚未确定的地方"验证()"函数返回验证数据,如果验证失败则返回false。
我无法弄清楚我出错的地方,但该代码(以及它的变体)正在抛出一个"未定义的变量" $ myVar的错误。
这个概念的正确语法是什么?
答案 0 :(得分:0)
多年来,PHP变得越来越严格。您应该始终实例化您的变量。以下修改应解决您的“未定义变量”问题:
function checkData($data, $moreData) {
$foo = $bar = null;
if (!$foo = validate($data)) {
return false;
}
if (!$bar = validate($moreData)) {
return false;
}
$result = "$foo" . "$bar";
return $result;
}
这不是抛出警告的条件,而是您尝试将不存在的变量分配给$result
的地方。此外,您的条件是检查比较而不是分配。
答案 1 :(得分:0)
我认为你的意思有点不同。而不是
if ($foo != validate($data)) {
你一直在使用这个
if (!$foo = validate($data)) {
发生的事情是: 1.调用验证功能 2.将结果分配给变量 3.检查该变量的条件。 它与
相同$foo = validate($data)
if(!$foo)
但是你可以理解,不推荐这样做的方式,因为它很难阅读并需要解释(否则为什么你在这里问它,呵呵)