PHP 5有error_get_last。有没有办法在PHP4.3中完全或至少部分地复制相同的功能?
答案 0 :(得分:3)
从PHP manual中撕掉(由joert dot net的php提供):
<?php
if( !function_exists('error_get_last') ) {
set_error_handler(
create_function(
'$errno,$errstr,$errfile,$errline,$errcontext',
'
global $__error_get_last_retval__;
$__error_get_last_retval__ = array(
\'type\' => $errno,
\'message\' => $errstr,
\'file\' => $errfile,
\'line\' => $errline
);
return false;
'
)
);
function error_get_last() {
global $__error_get_last_retval__;
if( !isset($__error_get_last_retval__) ) {
return null;
}
return $__error_get_last_retval__;
}
}
?>
答案 1 :(得分:0)
是的,但你必须做一些编程,你需要附加错误处理程序
$er_handler = set_error_handler("myErrorHandler");
但在此之前你需要写下你的“myErrorHandler”
function myErrorHandler($errNumber, $errString, $errFile, $errLine)
{
/*now add it to session so you can access it from anywhere, or if you have class with the static variable you can save it there */
$_SESSION["Error.LastError"] = $errNumber . '<br>' . $errString . '<br>' . $errFile . '<br>' . $errLine;
}
现在发生错误时,您可以通过
获取错误if(isset($_SESSION["Error.LastError"]))
$str = $_SESSION["Error.LastError"];
现在要复制你需要创建函数的方法
function get_last_error()
{
$str = "";
if(isset($_SESSION["Error.LastError"]))
$str = $_SESSION["Error.LastError"];
return $str;
}