gpt4 book ai didi

php - PHP错误处理- “missing argument for errorHandler”

转载 作者:行者123 更新时间:2023-12-03 08:03:24 25 4
gpt4 key购买 nike

我正在尝试首次设置错误处理。
它确实可以工作并报告错误(如果有的话),但是由于某种原因,它始终会为错误处理函数本身显示“缺少参数”的错误。请注意,我的错误处理功能在单独的文件中,并且包含在索引页中,我不确定这是否是问题:S

这是我的错误处理功能

function errorHandler($errno, $errstr, $error_file, $error_line) {

if(isset($errstr)) {
# There is an error, display it
echo $errno." - ".$errstr." in ".$error_file." at line ".$error_line."<br>";
} else {
# There isn't any error, do nothing
return false;
}

}

// We must tell PHP to use the above error handler.
set_error_handler("errorHanlder");

这是索引页

<!-- # Error Handler -->
<? if(errorHandler()) { ?>
<section id="error-handler">
<?=errorHandler();?>
</section>
<? } ?>

这是浏览器中的结果(请记住,没有php错误,因此此错误处理程序不应输出任何内容-这是我无法理解的
2 - Missing argument 1 for errorHandler(), called in index.php on line 20 and defined in inc/arcError.fnc.php at line 10
2 - Missing argument 2 for errorHandler(), called in index.php on line 20 and defined in inc/arcError.fnc.php at line 10
2 - Missing argument 3 for errorHandler(), called in index.php on line 20 and defined in inc/arcError.fnc.php at line 10
2 - Missing argument 4 for errorHandler(), called in index.php on line 20 and defined in inc/arcError.fnc.php at line 10

知道为什么PHP会报告缺少的参数吗?

最佳答案

您正在使用ZERO参数调用该函数...

<?=errorHandler();?>

为什么仍然需要调用它?

您的代码中有几种错别字:用“Handler”替换“Hanlder”。

无需这样做:
if(isset($errstr)) {

当出现错误时(并且仅在这种情况下!)会自动调用您的错误处理函数。 $ errstr是此函数的参数,始终在执行该函数时设置。

新代码:
function errorHandler($errno, $errstr, $error_file, $error_line) {
# There is an error, display it
echo "<section id='error-handler'>$errno - $errstr in $error_file at line $error_line</section><br>";
}

// We must tell PHP to use the above error handler.
set_error_handler("errorHandler");

关于php - PHP错误处理- “missing argument for errorHandler”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11374778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com