我想知道为什么我在 php 中的序列化没有按预期工作:
<?
$x = "whatever...";
$y = array(&$x, "test, 1-2, 1-2...", &$x);
$yy = unserialize(serialize(&$y));
$y[0] = "blah";
echo($yy[0]); // prints 'whatever', was expecting 'blah'
?>
最佳答案
&
被 serialize
忽略.
您似乎正在尝试从 y
创建符号表别名(引用)。至 yy
,但你不能在这里这样做。当您通过&y
至 serialize
,它不会将传递的值视为引用或在线序列化。此外,它返回一个全新的值,而不是对原始值的引用。您必须单独创建别名:
$yy = &$y;
$yy = unserialize(serialize($y));
我也不确定你要做什么,或者它与序列化有什么关系。
关于php - 在 PHP 中序列化引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590734/