error_reporting笔记
1 <?php 2 /** 3 * ERROR_REPORTING 错误报告级别 4 * @author cntnn11 5 * @time 2013-01-14 6 */ 7 error_reporting(E_ALL); 8 echo "<h1>ERROR_REPORTING 错误级别用法</h1>"; 9 echo "<hr/>"; 10 11 echo "<h3>1. E_ERROR --> (1)</h3>"; 12 echo "<p>a. 报告运行时的致命错误</p>"; 13 echo "<hr/>"; 14 15 echo "<h3>2. E_WARNING --> (2)</h3>"; 16 echo "<p>输出一个非致命性错误。但是该错误不会中断程序的执行。</p>"; 17 echo "<p>该类型错误包括参数传递错误</p>"; 18 echo "<p>EXP:array_flip('string'); --> Warning:xxxxx</p>"; 19 foreach ($warning as $value) 20 { 21 echo "error"; 22 } 23 echo "<hr/>"; 24 25 echo "<h3>3. E_NOTICE --> (8)</h3>"; 26 echo "<p>这个是输出可能的错误。比如:</p>"; 27 echo "<p> a).有个变量未声明</p>"; 28 echo "<p>这个比较少用,我们一般不让其显示。该错误不会中断程序执行</p>"; 29 echo $notice; 30 echo "<hr/>"; 31 32 echo "<h3>4. E_PARSE --> (4)</h3>"; 33 echo "<p>编译时语法解析错误。解析错误仅仅由分析器产生。</p>"; 34 echo "<p>这个很少见,目前为止我没有碰到过</p>"; 35 echo "<hr/>"; 36 37 echo "<h3>4. E_CORE_ERROR --> (16)</h3>"; 38 echo "<p>a. 报告PHP引擎启动失败</p>"; 39 echo "<p>b. 类似 E_ERROR,但不包括 PHP 核心造成的错误。</p>"; 40 echo "<hr/>"; 41 echo "<h3>5. E_CORE_WARNING --> (32)</h3>"; 42 echo "<p>a. 报告PHP引擎启动时非致命错误</p>"; 43 echo "<p>b. 类似 E_WARNING,但不包括 PHP 核心错误警告。</p>"; 44 echo "<p>以上继续不懂...</p>"; 45 echo "<hr/>"; 46 47 echo "<h3>6. E_COMPILE_ERROR --> (64)</h3>"; 48 echo "<p>a. 报告编译错误</p>"; 49 echo "<p>b. 应该也是类似E_ERROR错误,只是对象不同(暂时猜测)</p>"; 50 echo "<hr/>"; 51 echo "<h3>7. E_COMPILE_WARNING --> (128)</h3>"; 52 echo "<p>a. 报告编译时出现的非致命错误</p>"; 53 echo "<p>b. 应该也是类似E_WRNING错误,只是对象不同(暂时猜测)</p>"; 54 echo "<p>找不到输出位置,模拟不出这个错误...</p>"; 55 /* 56 2047 E_ALL 报告所有的错误和警告 57 2048 E_STRICT 报告不赞成的用法和不推荐的行为 58 */ 59 echo "<h3>7. E_USER_ERROR --> (256)</h3>"; 60 echo "<p>a. 报告用户触发的错误</p>"; 61 echo "<h3>8. E_USER_WARNING --> (512)</h3>"; 62 echo "<p>a. 报告用户触发的警告</p>"; 63 echo "<h3>9. E_USER_NOTICE</h3>"; 64 echo "<p>a. 报告用户触发的通告</p>"; 65 echo "<hr/>"; 66 67 echo "<h3>10. E_ALL --> (2047)</h3>"; 68 echo "<p>a. 报告所有的错误和警告。这个无需解释</p>"; 69 echo "<hr/>"; 70 71 echo "<h3>11. E_STRICT --> (2048)</h3>"; 72 echo "<p>a. 报告不赞成的用户和不推荐的行为</p>"; 73 echo "<p>EXP:如果调用了类的一个私有属性,那么会提示该错误</p>"; 74 75 class testError 76 { 77 private $strict = 'no'; 78 79 public function publicFun() 80 { 81 echo "访问我不报错!<br/>"; 82 } 83 84 private function strictFunc() 85 { 86 echo "外部访问我会报错!<br/>"; 87 } 88 } 89 $error = new testError(); 90 $error->publicFun(); 91 echo "<hr/>"; 92 93 echo "<h3>设置使用方法</h3>"; 94 echo "<p>a. error_reporting(E_ALL); 程序中可以这么使用</p>"; 95 echo "<p>b. ini_set('error_reporting', E_ALL); 这种方式也可以</p>"; 96 //ini_set('error_reporting', E_ALL); 97 echo "<p>当然,你还可以这么玩:比如这样(E_ERROR | E_WARNING),这个表示只显示error或warning级别的错误</p>"; 98 echo "<p>(E_ALL & ~E_NOTICE); 这个除开notice级别的错误,其他的都显示出来。</p>"; 99 echo "<p style='text-indent:2em;'>~表示非的意思。&,这个你知道的</p>"; 100 101 echo "<h1 style='color:red;'>学习不是为了完任务!</h1>"; 102 ?>