php正确语法错误,快速掌握PHP检查语法错误技巧_PHP教程

错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:

$func = ‘eval’

$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。

eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:< ?PHP

if(!function_exists('PHP_check_syntax')) {

functionPHP_check_syntax($file_name,

&$error_message=null) {

$file_content=file_get_contents($file_name);

$check_code="return true; ?>";

$file_content= $check_code .

$file_content . "

if(!@eval($file_content)) {

$error_message="file: ".

realpath($file_name) . " have syntax error";

return false;

}

return true;

}

}

if(!PHP_check_syntax("file.PHP", $msg)) {

echo $msg;

}

else {

echo "Woohoo, OK!";

}

foreach::a=>b

?>

因为Parse error 是没法被 set_error_handler处理函数处理的。这个异常没办法catch到。所以才使用了@来抑制错误。这带来的问题就是我们无法得到详细的错误信息。 不过目前我需要的功能也只是检查语法是否正确。不正确的话重新编译模板文件,就这么简单,至于语法错误,在显示网页的时候自然会看得到。

PHP检查语法错误最好的办法就是这个被遗弃的PHP_check_syntax这个方法回到PHP中。下次再研究下他们是出于什么原因把这个函数去掉的。

http://www.bkjia.com/PHPjc/446009.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446009.htmlTechArticle错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如: $func = eval $func()这样的调用就是无效的。它会提...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部