@
GTim 接上
为什么 其它语言实现的几乎都是 Map,是因为 serialize 序列化后的结果,数组和哈希表是没啥区别的,唯一的区别就是键的类型是否有 i 或 s.
1. 只要出现 s,那么必须是 map
2. 全部都是 i , 如果最后的每个键都自增,那么就是 array
3. 否则,还是 map
<?php
$person = [1,2,3,4,6];
echo serialize($person);
echo "\n\n";
$person = [1, 10 => 2,3,4,6];
echo serialize($person);
echo "\n\n";
$person = [
'name' => 'yufei',
'age' => 28,
'address' => 'dd'
];
echo serialize($person);
echo "\n\n";
$person = [
'88',
'name' => 'yufei',
'age' => 28,
'address' => 'dd',
'99'
];
echo serialize($person);
echo "\n\n";
$person = [[
'name' => 'yufei',
'age' => 28,
'address' => 'dd'
],
[
'name' => 'yufei',
'age' => 28,
'address' => 'dd'
]
];
echo serialize($person);
echo "\n\n";
结果如下
a:5:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:6;}
a:5:{i:0;i:1;i:10;i:2;i:11;i:3;i:12;i:4;i:13;i:6;}
a:3:{s:4:"name";s:5:"yufei";s:3:"age";i:28;s:7:"address";s:2:"dd";}
a:5:{i:0;s:2:"88";s:4:"name";s:5:"yufei";s:3:"age";i:28;s:7:"address";s:2:"dd";i:1;s:2:"99";}
a:2:{i:0;a:3:{s:4:"name";s:5:"yufei";s:3:"age";i:28;s:7:"address";s:2:"dd";}i:1;a:3:{s:4:"name";s:5:"yufei";s:3:"age";i:28;s:7:"address";s:2:"dd";}}