将参数传递给set中调用的函数
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
。 有关更多信息,请参阅手册页。
尝试这个
set_error_handler(array($this, 'customErrorHandler'));
对于自定义错误消息,我在下面找到了好文章,
http://mydons.com/how-to-create-error-messages-like-codeigniter-drupal-and-custom-type-with-php/
链接地址: http://www.djcxy.com/p/58915.html