Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用已定义变量时出现未定义变量错误?_Php_Variables - Fatal编程技术网

在PHP中使用已定义变量时出现未定义变量错误?

在PHP中使用已定义变量时出现未定义变量错误?,php,variables,Php,Variables,我正在制作一个网站,在那里我登录,按下一个按钮,然后从数据库加载一些信息。代码运行良好,但有一点除外:我得到了这个错误: <b>Notice</b>: Undefined variable: error in <b>/character-load.php</b> on line <b>42</b><br /> 这有什么问题吗?我不明白为什么它说变量错误是未定义的?我可以根据要求添加更多信息,因为我真的不知道还

我正在制作一个网站,在那里我登录,按下一个按钮,然后从数据库加载一些信息。代码运行良好,但有一点除外:我得到了这个错误:

<b>Notice</b>:  Undefined variable: error in <b>/character-load.php</b> on line <b>42</b><br />
这有什么问题吗?我不明白为什么它说变量错误是未定义的?我可以根据要求添加更多信息,因为我真的不知道还要添加什么。

试试这个-

$error = 0;
if ($user["banned"] == 1){ 
  $error = 1;
}
if (mysql_num_rows($character) == 0){ 
  $error = 1;
}
if (mysql_num_rows($username) == 0){ 
  $error = 1;
}
if (empty($charid)){ 
  $error = 1;
}

并在使用时添加检查。

仅当出现这4种情况之一时才定义变量。如果这些都没有发生,它就不会存在

最简单的修复方法是在块的顶部将其定义为0


记住;在PHP中,只有在实际执行一个赋值行时才定义变量。只是在文件中,但被跳过并不算在内。

$error
仅在
条件范围内定义。在它之外定义它以压制通知。我认为你必须在条件改变之前定义它。谢谢,这确实有效。出于什么原因我必须键入
$error=0首先?请参阅Erik的答案以了解解释。如果没有任何条件通过,则不会有名为
$error
的变量。
$error = 0;
if ($user["banned"] == 1){ 
  $error = 1;
}
if (mysql_num_rows($character) == 0){ 
  $error = 1;
}
if (mysql_num_rows($username) == 0){ 
  $error = 1;
}
if (empty($charid)){ 
  $error = 1;
}