Linux 技术手札

PHP 报错: “Notice: Undefined variable” 及 “Notice: Undefined index”

在 C 或 Perl 这些程式语语, 在使用变量前需要先进行宣告, 而 PHP 则不需要宣告变量, 可以直接使用变量。

PHP 不需要宣告变量仍可执行, 只要在某些主机会出现 Warning, 例如:

上面程式码并未宣告变量 $test, 所以会出现错误 “Notice: Undefined variable: test”, 但由于这个只是 warning, 所以程式会继续执行, 除了显示错 warning 外, 也会显示 100 的执行结果:

Notice: Undefined variable: test in /var/www/html/test.php on line 2
100

如果在 PHP 程式码的层面解决, 方法是在使用 $test 变量前先宣告, 由于 PHP 会自动转换变量类型, 所以以下两种方法也可以:

$test = 0;

$test = “”;

例如改成这样便不会出错 warning 了:

另一个 warning 是 “Notice: Undefined index”, 这个跟未宣告变量差不多, 只是今次没有宣告的是阵列的内容, 解决方法跟上面一样。

如果不想每个 PHP 档案一同修改, 也可以修改 php.ini, 开启档案 php.ini, 找到 error_reporting, 改成这样:

error_reporting = E_ALL & ~E_NOTICE

或者找到 display_errors, 将它设定为 Off:

display_errors = Off

上面两个设定只要改其中一个便可以, 然后重新启动网页服务器便会生效。但上面两个设定只建议在生产环境使用, 如果在测试或开发环境上, 打开对程式码除错会更方便。

Exit mobile version