工作中不可避免会遇到php对象与数组的相互转化,下边对其方法做了简单的总结。
1.强制转化
arr = (array) obj; obj = (object) arr;
优点:比较简洁 缺点:不能递归转化 适用范围:无嵌套数组,无嵌套类的转化
2.自定义方法
object2array ,array2object
1 | /* 对象转为数组 */ |
优点:可以处理嵌套 缺点:需添加对应函数到系统 适用范围:ALL
3.利用内置函数
json_decode(json_encode(arr), false)
json_decode(json_encode(arr), true)
优点:简洁、可处理嵌套 缺点:每次转化都是先执行一次json_encode,再执行一次json_decode,直观判断运行效率会低一些 适用范围:ALL
特别注意:
1.arr = (array) obj;这种转换对象的方法,public、private、protected属性都能转化,而其他两种方法则只能转化public属性
2.无论哪种方法都是只转化类的属性,不转化类的方法