课程
/前端开发
/JavaScript
/Ajax全接触
想问下老师,为什么有时候json_encode一个数组,json格式出来后会是一个对象??php在转码过程中,对象和数组是怎么区分的?
2016-04-23
源自:Ajax全接触 4-1
正在回答
如果PHP数组的键都是数字,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串。那么json_encode()就会返回一个对象形式的Json。区分到底是数组还是对象,就看数组的键是怎么样的了,全为数字就
返回数组类型,权威字符串就返回对象类型
慕圣5703068 提问者
比如json_encode一个索引数组array('name','age'),没有明确的key只有value,那么json_encode后他就是数组,而它输出的是["name","age"]。若是json_encode一个关联数组array("username"=>"zhangsan"),有明确的键和值,那么json_encode后他就是对象,而它实际输出的是{“username”:“zhangsan”},可以看出区别对象使用{}来包裹的,数组是使用[]来包裹的。
可能回答的不是我要的问的,我的疑惑是,比如我们一个数组array("key"=>"value"),按正常理解转换成JSON格式后应该是["key":"value"],但是在使用json_encode转换后实际输出的是{"key":"value"},直接就变成一个对象了
在php中对象是对象,数组是数组
对象含有属性方法,多态继承抽象,数组只有键和值
举报
本课程通过一个案例,讲解Ajax的相关概念原理实现方式和应用