为什么include错误会被回显四次?
系统是否尝试4次“打开流”?
我做到了:
function errorHandler($errno, $errstr, $errfile, $errline) {
if ($errno == E_NOTICE ) {
echo "<br/>".$errno."== E_NOTICE<br/>";
}
if ($errno == E_USER_NOTICE) {
echo "<br/>".$errno."== E_USER_NOTICE<br/>";
}
if ($errno == E_DEPRECATED) {
echo "<br/>".$errno."== E_DEPRECATED<br/>";
}
if ($errno == E_USER_DEPRECATED) {
echo "<br/>".$errno."== E_USER_DEPRECATED<br/>";
}
if ($errno == E_STRICT) {
echo "<br/>".$errno."== E_STRICT<br/>";
}
if ($errno == E_WARNING) {
echo "<br/>".$errno."== E_WARNING<br/>";
}
if ($errno == E_USER_WARNING) {
echo "<br/>".$errno."== E_USER_WARNING<br/>";
}
if ($errno == E_ERROR) {
echo "<br/>".$errno."== E_ERROR<br/>";
}
if ($errno == E_USER_ERROR) {
echo "<br/>".$errno."== E_USER_ERROR<br/>";
}
}
set_error_handler("errorHandler"); 结果:
2== E_WARNING
2== E_WARNING
2== E_WARNING
2== E_WARNING发布于 2012-07-04 05:36:28
如果看不到与你的错误相关的其他信息,就很难说。
根据给定的文件路径或指定的include_path包含
文件。如果在include_path中找不到该文件,include将在失败之前最后检查调用脚本自己的目录和当前工作目录。如果include构造找不到文件,它将发出警告;这是与require不同行为,后者将发出致命错误。
include()文档。
在查找要包含的文件时,
会单独考虑包含路径中的每个条目。它将检查第一个路径,如果没有找到,则检查下一个路径,直到找到包含的文件或返回警告或错误。您可以在运行时使用set_include_path()修改或设置包含路径。
根据包含进程上的PHP docs。
顺便说一句,我对您提供的自定义errorHandler()函数做了一些修改。
<?php
function errorHandler($errno, $errstr, $errfile, $errline) {
$response;
switch ($errno){
case E_NOTICE:
$reponse = 'E_NOTICE';
break;
case E_USER_NOTICE:
$reponse = 'E_USER_NOTICE';
break;
case E_DEPRECATED:
$reponse = 'E_DEPRECATED';
break;
case E_USER_DEPRECATED:
$reponse = 'E_USER_DEPRECATED';
break;
case E_STRICT:
$reponse = 'E_STRICT';
break;
case E_WARNING:
$reponse = 'E_WARNING';
break;
case E_USER_WARNING:
$reponse = 'E_USER_WARNING';
break;
case E_ERROR:
$reponse = 'E_ERROR';
break;
case E_USER_ERROR:
$reponse = 'E_USER_ERROR';
break;
}
echo "<br />Errno: [$errno]; Type: [$reponse]<br />";
echo "<br />Error on line [$errline] in file [$errfile]<br />";
echo "<br />Error: ". $errstr . "<br />";
}
set_error_handler("errorHandler");
?>https://stackoverflow.com/questions/11319137
复制相似问题