今天在調(diào)試程序的時(shí)候,很多網(wǎng)上提供的源碼都會(huì)出現(xiàn) Undefined variable錯(cuò)誤,一般情況下php是不需要定義變量的,但如果服務(wù)器什么都報(bào)錯(cuò)的,就會(huì)出現(xiàn)錯(cuò)誤,所以服務(wù)器上都是應(yīng)該屏蔽這種錯(cuò)誤的
PHP默認(rèn)配置會(huì)報(bào)這個(gè)錯(cuò)誤,我的PHP版本是5.2.13,存在這個(gè)問(wèn)題:
Notice: Undefined variable
這就是將警告在頁(yè)面上打印出來(lái),雖然這是有利于暴露問(wèn)題,但實(shí)現(xiàn)使用中會(huì)存在很多問(wèn)題。
需要設(shè)置顯示錯(cuò)誤級(jí)別,來(lái)解決問(wèn)題。
網(wǎng)絡(luò)上的通用解決辦法是修改php.ini的配置:
解決方法:
1) error_reporting設(shè)置:
找到error_reporting = E_ALL
修改為error_reporting = E_ALL & ~E_NOTICE
2) register_globals設(shè)置:
找到register_globals = Off
修改為register_globals = On
我發(fā)現(xiàn)在php代碼中直接使用
error_reporting(E_ALL & ~E_NOTICE);
可以解決這個(gè)問(wèn)題,小技巧記一下,呵呵。
以下是補(bǔ)充:
Notice: Undefined variable: email in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9
Notice: Undefined variable: subject in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9
Notice: Undefined variable: comment in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9
........
其實(shí)以上就是未定義變量,我們就直接判斷變量的代碼導(dǎo)致。
本來(lái)php是不需要定義變量的,但是出現(xiàn)這種情況應(yīng)該怎么辦呢?
只要在C:\WINDOWS找出php.ini的
在php.ini中的302行 error_reporting = E_ALL
修改成
error_reporting = E_ALL & ~E_NOTICE再重啟apache2.2就行了
解決方法:修改php.ini
將: error_reporting = E_ALL
修改為:error_reporting = E_ALL & ~E_NOTICE
如果什么錯(cuò)誤都不想讓顯示,直接修改:
display_errors = Off
如果你沒(méi)有php.ini的修改權(quán)限,可在php頭部加入
ini_set("error_reporting","E_ALL & ~E_NOTICE");
即可