16.2.2 运行时错误的处理
语法错误可以在PHP分析器执行脚本时检测到,而运行时错误就不那么简单了,下面通过实例来说明。比如有如下所示的一段PHP代码。
<?php
$i=10;
$j=0;
$k=$i/$j;
?>
这段代码本身没有任何语法错误,但是,这段代码将0作为除数,所以会产生类似下面的警告(Warring)信息。
Warning:Division by zero in D:\Apache2\htdocs\webroot\ch16\test.php on line 4
又如下面的这段代码。
<?php
$rest=find_somethng();
?>
这段代码调用一个不存在或者没有定义过的函数find_someting(),会产生类似下面的致命错误(Fatal error)信息。
Fatal error:Call to undefined function find_something()in D:\Apache2\htdocs\webroot\ch16\test.php on line 2
这段代码报告错误:Call to undefined function find_someting(),其含义是:调用一个未定义的函数find_something()。常见的运行时错误有以下几类。
❑读写一个不存在或者无权限的文件。
❑调用一个未定义的函数或传入函数的参数问题。
❑连接数据库异常。
❑没有获取到INPUT数据。
再举一个调用函数的运行时错误,如下代码所示。
<?php
$rest=substr();
?>
读者已经知道PHP预定义函数substr()至少应该传入两个参数,但这段代码调用函数substr()没有使用任何参数,这时会得到一个类似下面的警告信息。这段警告信息指明,函数substr()参数数量错误。
Warning:Wrong parameter count for substr()in D:\Apache2\htdocs\webroot\ch16\test.php on line 2