以下代码抛出了这个异常:
$return = json_decode($result);
致命错误:无法访问以' \ 0'开头的属性在 file.php在线 36
我已经在这里阅读了php文档和一些问题,所以我尝试了这段代码:
try{
$return = json_decode($result);
}
catch(Exception $e)
{
$json_error_code = json_last_error();
echo $json_error_code . ",";
$err.= 'JSON parse error';
switch ($json_error_code) {
case JSON_ERROR_NONE:
$err = "NONE";
break;
case JSON_ERROR_DEPTH:
$err.= ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
$err.= ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
$err.= ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
$err.= ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
$err.= ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
$err.= ' - Unknown error';
break;
}
echo $err;
}
它会在try-catch块中抛出相同的致命错误!
有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:-1)
首先删除try catch块json_decode不会抛出异常。 其次创建$ err更改行
$err.= 'JSON parse error';
到
$err= 'JSON parse error';
您尝试将字符串连接到不存在的变量。
从默认情况下删除中断:它没用。
执行此操作后,它应该可以正常工作。
注意:如果您希望错误的行为与异常相同,则需要使用own error handler
如果json_encode给出致命错误,请尝试重新安装json扩展程序并查看https://bugs.php.net/bug.php?id=68546