【发布时间】:2015-08-20 15:50:19
【问题描述】:
我今天使用unset() 和 json_decode/json_encode 发现了一些有趣的东西。代码如下:
echo "<h3>1) array as string</h3>";
$sa = '["item1","item2","item3"]';
var_dump($sa);
echo "<h3>2) array as string decoded</h3>";
$sad = json_decode($sa);
var_dump($sad);
echo "<h3>3) array as string decoded, then encoded again. <small>(Note it's the same as the original string)</small></h3>";
$sade = json_encode($sad);
var_dump($sade);
echo "<h3>4) Unset decoded</h3>";
unset($sad[0]);
var_dump($sad);
echo "<h3>5) Encode unset array. <small>(Expecting it to look like original string minus the unset value)</small></h3>";
$ns = json_encode($sad);
var_dump($ns);
echo "<h3>6) Decode Encoded unset array</h3>";
var_dump(json_decode($ns));
结果:
所以我的问题是:为什么 unset() 会改变 json_encode 使其成为字符串的方式?以及如何实现和原来一样的字符串格式?
【问题讨论】: