如何调试PHP程序错误呢?

在调试PHP程序错误时,程序员会根据屏幕中输出的信息,打开错误报告,找出PHP程序的错误。

在PHP程序中的错误级别都有哪些呢?

分析错误

PHP的分析错误是在程序被编译时产生。如果编译器检测到PHP程序中含有语法错误,则会输出Parse error。

例如:

<?php echo "This is an about php's website! ?>

结果:

Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in E:\xampp\htdocs\php\Test\9.2.1.php on line 3

致命错误

别被它的名字吓到。不要人命!呵呵!在PHP编译器编辑代码时遇到环境或者资源不可用的情况下,就会发生致命错误。

例如:

<?php require("www.phpdo.net"); ?>

结果:

Warning: require() [function.require]: failed to open stream: No such file or directory in E:\xampp\htdocs\php\Test\9.2.2.php on line 2
Fatal error: require() [function.require]: Failed opening required ‘’ (include_path=’.;E:\xampp\php\PEAR’) in E:\xampp\htdocs\php\Test\9.2.2.php on line 2

解决方法是看看文件存在否。

警告

PHP代码遇到一些异常时就会产生警告错误。值得注意的是警告错误并不会影响程序的运行。

例如:

<?php include("www.phpdo.net"); echo "php"; ?>

结果:

Warning: include() [function.include]: failed to open stream: No such file or directory in E:\xampp\htdocs\php\Test\9.2.3.php on line 2
Warning: include() [function.include]: Failed opening ‘’ for inclusion (include_path=’.;E:\xampp\php\PEAR’) in E:\xampp\htdocs\php\Test\9.2.3.php on line 2
php

哈哈!是不是也发现了require和include的不同之处了?

通知

当一下PHP程序的错误很小,而编译器能够自己解决的情况下,就会产生一个通知。

例如:

<?php echo $php; ?>

你知道控制PHP编译器产生错误报告的是什么代码吗?

在php.ini文件中,有两行代码可以控制PHP的错误报告:error_reporting = E_ALL 和display_errors = On

display_errors 根据它的英文意思就可以了解了,是否显示错误报告。

error_reporting 的默认值就是E_All,显示所有需要提示的信息,包括一些正确的提示,更别说错误报告了。

另外还有一种调试PHP错误的方法就是使用print语句。

但是我认为如果程序很大的话,使用print语句就会使得代码很臃肿,所以我不建议使用。