您好,欢迎访问一九零五行业门户网

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

错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:
$func = ‘eval’
$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。
eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:
 ?php  if(!function_exists('php_check_syntax')) {  function php_check_syntax($file_name, 
&$error_message = null) {  $file_content = file_get_contents($file_name);  $check_code = return true; ?>;   $file_content = $check_code . 
$file_content .  ?php ;  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!;  }   ?php  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()这样的调用就是无效的。它会提...
其它类似信息

推荐信息