gpt4 book ai didi

php - 将参数传递给 set_error_handler PHP 中调用的函数

转载 作者:行者123 更新时间:2023-12-02 21:52:24 28 4
gpt4 key购买 nike

function errHandle($errNo, $errStr, $errFile, $errLine, $xmlArray) {
$msg = "$errStr in $errFile on line $errLine";

if ($errNo == E_NOTICE || $errNo == E_WARNING) {
throw new ErrorException($msg, $errNo);
} else {
echo $msg;
echo '<pre>';
print_r($xmlArray);
}
}

foreach($returnValues as $xmlArray){

....
....
set_error_handler(array($xmlArray, 'errHandle'));

}

我可以将数组作为参数传递给 errHandle 函数吗?

它显示错误:set_error_handler() 期望参数 (SimpleXMLElement::errHandle) 是...中的有效回调

整个目的是检查迭代中是否有错误,然后显示该数组以查看函数 errHandle 中的数组内容

最佳答案

您不能直接执行此操作,因为用户定义的错误处理程序有严格的规则。如果您正在定义错误处理程序,则可以依赖其中的上下文 - 该上下文将作为最后一个参数传递,并将包含当前范围(即触发错误的范围)。这是一个例子:

function errHandle($errNo, $errStr, $errFile, $errLine, $errContext) {
$msg = "$errStr in $errFile on line $errLine";

if ($errNo == E_NOTICE || $errNo == E_WARNING) {
throw new ErrorException($msg, $errNo);
} else {
echo $msg;
echo '<pre>';
print_r($errContext);
}
}

$xmlArray=['foo'=>'bar'];
set_error_handler('errHandle');

trigger_error('test', E_USER_WARNING);

您将能够通过相应的键(即'xmlArray')从参数$errContext访问$xmlArray。欲了解更多信息,请参阅manual page .

关于php - 将参数传递给 set_error_handler PHP 中调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350278/

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