首先,这个不是错误,是warning。所以如果服务器不能改,每个变量使用前应当先定义。

 

    方法1:服务器配置修改 

    修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE

 

    方法2:对变量进行初始化,规范书写(比较烦琐,因为有大量的变量)。但还没有找到好定义方法,望大家指教

 

    方法3:每个文件头部加上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off。以后任何错误都不会提示。

 

    方法4 :做判断:isset($_GET["page"])      if-else判断

    或者加上''@''表示这行如果有错误或是警告不要輸出

    如:@$page=$_GET["page"]

 

    方法5:file1.php文件把$xx变量付一个值,用post传递给file2.php,

    如果file2.php没有$xx的定义,而直接使用$yy=$xx; 系统就会报错:"undifined variaable $xx", 如果file2.php的文件开始用$xx="";定义,那么file1.php的$xx值就传不过来了!

 

    file2.php里可以这样

    if(!isset($xx)) $xx="";

 


 





​定义和用法:​


​error_reporting() 设置 PHP 的报错级别并返回当前级别。​


 


​函数语法:​


​error_reporting(report_level)​


 


​如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:​


​值 常量 描述​


​1 E_ERROR 致命的运行错误。错误无法恢复,暂停执行脚本。​


​2 E_WARNING 运行时警告(非致命性错误)。非致命的运行错误,脚本执行不会停止。​


​4 E_PARSE 编译时解析错误。解析错误只由分析器产生。​


​8 E_NOTICE 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)​


​16 E_CORE_ERROR PHP启动时初始化过程中的致命错误。​


​32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)。​


​64 E_COMPILE_ERROR 编译时致命性错。这就像由Zend脚本引擎生成了一个E_ERROR。​


​128 E_COMPILE_WARNING 编译时警告(非致命性错)。这就像由Zend脚本引擎生成了一个E_WARNING警告。​


​256 E_USER_ERROR 用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR)​


​512 E_USER_WARNING 用户自定义的警告消息。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)​


​1024 E_USER_NOTICE 用户自定义的提醒消息。这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集)​


​2048 E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。​


​4096 E_RECOVERABLE_ERROR 开捕致命错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())​


​8191 E_ALL 所有的错误和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)​



 

例子:

任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。

例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:






​<?php​


​//禁用错误报告​


​error_reporting​​​​(0);​


 


​//报告运行时错误​


​error_reporting​​​​(E_ERROR | E_WARNING | E_PARSE);​


 


​//报告所有错误​


​error_reporting​​​​(E_ALL);​


​?>​