在把自己辛辛苦苦编写的PHP程序部署到服务器上的时候,相信这样的提示很多人都见过:

PHP Notice:  Undefined variable
PHP Notice:  Undefined index

看看吧,你有没定义的变量直接使用了。不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点。PHP的默认设置是显示这些提示,这会造成页面无法正常显示出来。

如果你要说“PHP,我知道我没定义,就这么地了,你甭多嘴了成不?”,那也容易。只要打开服务器的php.ini文件,找到以下选项:

;   – Show all errors, except for notices and coding standards warnings
;
;error_reporting = E_ALL & ~E_NOTICE
;
;   – Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
;   – Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
;   – Show all errors, except coding standards warnings
;
error_reporting = E_ALL

把“error_reporting = E_ALL & ~E_NOTICE”前面的分号去掉,“error_reporting = E_ALL”前面加一个分号,保存后重启Web服务器软件,就行了!

Update(03/09/2010): 须知并不是每个服务器你都有权去调整这些参数,所以最好在编程的时候规范些,以利程序的发布。

Update(03/23/2011): PHP 函数 error_reporting 可以设置错误报告的级别。如 error_reporting(0) 将关闭所有错误提示,error_reporting(E_ALL ^ E_NOTICE) 则显示除 Notice 以外的错误信息(PHP 默认值)。详情请参见 PHP Manual: error_reporting