php数组的坑
php数组的坑
在对接elm文档时,要求params必须传值必须是(object)
$req["params"] = [];
会自动转换为null 数组
$req["name"] = "xxx";
会自动转化为 会输出一个 JSON 对象({}),前提是 $req 是一个关联数组(即键是字符串)- 我在平时的代码编写中没有注意到这个情况
- $req["x"] = (object)[];文档中要求必须传值必须是(object)
| PHP 写法 | JSON 结果 | 是否符合“对象”要求 |
|---|---|---|
$req["x"] = []; | "x": [] | ❌ 数组 |
$req["x"] = (object)[]; | "x": {} | ✅ 对象 |
$req["action"] = "xxx"; | "action": "xxx" | ✅(整个 $req 是关联数组,转为 JSON 对象) |
在进行字段数据检验为null犯了一个错误
检验单个字段是否为null,将数据查询出来,转换为数组,在通过empty去判断
重要
我的数据里面有数据,在查询phone字段是否为null,(实际是空的,他执行成功)
$phone = $this->Db('')->where('openid',$data['openid'])
->field('phone')
->find();
if (empty($phone)){
return commonReturn(0,"用户不存在");
}
return commonReturn(1,"成功",$phone);
原因:['phone' => null],则 empty($phone) 为 false,但 $phone 是空的重要
避免这样的写法,转换为数组,判断数组字段是否为null
$req = $this->Db('')->where('openid',$data['openid'])->find();
if (empty($req["phone"])){
}版权所有
版权归属:念宇
