前言
今天遇到一个问题,客户端页面部分模块内容突然无法展示,查看相关日志发现下发都正常,没办法只能拿到能复现case的手机,通过proxyman抓包看是否下发,结果也能正常下发,但是却没有展现。
怀疑可能是客户端同学迭代某个功能影响了,找到相关同学一通排查,最后发现客户端最近升级json解析库,原来下发的一个字段格式为对象类型{},该字段通过逻辑过滤后被PHP改成了空结构[],Android json库认为字段对象类型跟原来不一样,解析失败,所以没展示,想起上午的一个上线,脑袋有点大。。。
PHP处理中一般对对象和数组的空结果的类型不是很注意,一般都是直接定义为空数组,这样很容易遇到上面的问题,下面简单说下PHP空对象的定义以及数组如何转换成对象类型
PHP数组转为对象
<?php
//定义一个空的对象
$object = (object)[];
var_dump($object);
//将数组转为对象
$arr = [
"id" => 100001,
"name" => "robin"
];
var_dump($arr);
var_dump((object)$arr);
以上执行结果为:
object(stdClass)#1 (0) {
}
array(2) {
["id"]=>int(100001)
["name"]=>string(5) "robin"
}
object(stdClass)#2 (2) {
["id"]=>int(100001)
["name"]=>string(5) "robin"
}
文档参考
Object 对象:https://www.php.net/manual/zh/language.types.object.php
结语
以上是PHP定义空对象以及如何将数组转为对象类型的简单介绍,希望能帮助到需要的同学,更多文章请关注本站其他内容,感谢!