php unset对json_encode的影响

 先运行一段php代码:

复制代码
$a = Array(0=>'hello world', 1=>'girl', 2=>'boy');  var_dump(json_encode($a));  unset($a[1]);  var_dump(json_encode($a));
复制代码

返回结果如下:

复制代码
string(28) "["hello world","girl","boy"]"string(29) "{"0":"hello world","2":"boy"}"
复制代码

 

发现对一个数组unset前后,变量的类型变化了,unset前是数组,unset后是对象

这是为什么呢?

 

看下unset和json_encode究竟是做了什么:

unset() 销毁指定的变量。可以删除数组的指定元素,删除后索引不重排。

 json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 

 

而json_encode转换的对象如果是数组,那么就需要注意下了,看下面的示例:

举例:

复制代码
$a = Array(0=>'hello world', 1=>'girl', 2=>'boy'); var_dump(json_encode($a));  $b = Array('name'=>'hello world', 'age'=>'18', 'gender'=>'man'); var_dump(json_encode($b));
复制代码

运算结果:

复制代码
string(28) "["hello world","girl","boy"]"string(48) "{"name":"hello world","age":"18","gender":"man"}"
复制代码

发现上面的结果一个是数组,一个是对象。

这是因为$a是索引数组(连续数组),$b则是关联数组(非连续数组)

再看一个官方的例子:

 

以上输出的结果是:

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信