在thinkphp处理图片上传功能的时候,针对错误情况抛出错误提示,但出现以如下提示:
致命错误: Cannot use object of type stdClass as array
代码如下:
$pid = input('pid')!= NULL ?input('pid'):session('pid');
$res = Upload::image('file','attach'.DS.date('Y').DS.date('m').DS.date('d'),true,true,null,'uniqid',1);
if(!is_array($res)){
$info = array(
'code' =>400,
'msg' =>'上传失败:'.$res,
'src' =>''
);
这个提示原因是指不能把stdClass的对象做数组使用,所以说我们要解决这个问题就必须把stdClass对象转换成数组类型才行,解决方法有两种:
$res = json_decord($res,true);//这样就可以采用$res['msg']的方式进行访问
或者$res = json_decord($res),但使用$res->msg的方式进行访问即可,或者可以做个判断$res是否为数组对象,如:count($res)?$res:[];