学习阶段的这几天,我遇到一个贼恶心的问题!
return 前台要做layer.msg()的弹窗,但是我提交过去的数据怎么用?搞懵逼了!
百思不得七姐的时候,我七姐特别给力的让我整了个这样的方法出来,但是在使用的时候还是出了很多的闹心四儿;
- 先开始使用的是 return json_encode($rs); 结果客户端的js哥不认识他,怎么rs.msg都点不出来!
- 问题:return和exit他俩我没搞懂,php跟我玩阴的!
- 补脑:return 返回函数值,是关键字,是语言级的 永远的都是 返回值 返回值 返回值;
- 补脑:exit 是一个函数,是系统级的,是关闭进程,不再执行;
- 解决:虽然我不知道为什么exit会让这个方法的结果在客户端的js中可以调用,但是我知道的是回去的是一个obj,js中操作的就是一个obj而已。
function DDReturn($msg,$status = -1,$data = []){
$rs = ['status'=>$status,'msg'=>$msg];
if(!empty($data))$rs['data'] = $data;
//return json_encode($rs);
exit(json_encode($rs)) ;
}
以上内容不变的情况下,我得出一个结论,exit的作用是直接退出并返回数据;
在客户端的js上已经进行了JSON的类型设置,所以说如果在return的时候json_encode的方法处理了返回的数据,那么返回的数据将是一个string字符串!这样回到js里面怎么调用你也调用不出来json格式!所以才失败了!
网友评论