序列化,反序列化,添加元素并再次序列化

时间:2010-08-05 13:30:42

标签: php

任何人都可以告诉为什么这段代码不起作用:

$ser = array('one','two','three','four');
$x = serialize($ser);
$x = unserialize($x);
$x = array_push($x, 'five');
$x = serialize($x);
echo $x;

我认为这不需要任何进一步的解释......

结果只有:

  

I:5;

2 个答案:

答案 0 :(得分:11)

不要将array_push的结果赋给$ x。

array_push($x, 'five'); 

此函数返回新的元素数,您不想替换它们。

$ser = array('one','two','three','four'); 
$x = serialize($ser); 
$x = unserialize($x); 
array_push($x, 'five'); 
$x = serialize($x); 
var_dump($x); 

答案 1 :(得分:4)

那是因为array_push()返回新数组中的项数。该值由参考设置。

请参阅有关array_push函数的PHP文档: http://at.php.net/array_push