如何调试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语句就会使得代码很臃肿,所以我不建议使用。
转载于:https://blog.51cto.com/cathiry/968804