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 ?>