PHP 的 json_decode 函数有一个“深度”参数,您可以在其中指定递归的深度。但是下面的代码:
test = array(
'name' => 'sean',
'dob' => '12-20',
'parents' => array(
'father' => 'tommy',
'mother' => 'darcy'
)
);
foreach(range(1, 3) as $depth) {
echo "-----------------\n depth: $depth\n";
print_r(json_decode(json_encode($test), true, $depth));
}
产生这个输出:
-----------------
depth: 1
-----------------
depth: 2
-----------------
depth: 3
Array
(
[name] => sean
[dob] => 12-20
[parents] => Array
(
[father] => tommy
[mother] => darcy
)
)
我期望的是深度 1 显示“姓名”和“dob”,深度 2 也显示父母。我不明白为什么 1 或 2 的深度根本不显示任何内容。
谁能向我解释我不明白的地方?