3

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'
?>
4

2 に答える 2

6

&によって無視されserializeます。

yからへのシンボル テーブル エイリアス (参照) を作成しようとしているようですがyy、ここではできません。に渡す&yserialize、渡された値が参照として扱われたり、インラインでシリアル化されたりしません。さらに、元の値への参照ではなく、まったく新しい値を返します。エイリアスを個別に作成する必要があります。

$yy = &$y;
$yy = unserialize(serialize($y));

また、あなたが何をしようとしているのか、またはシリアライゼーションと何の関係があるのか​​ もよくわかりません。

于 2012-09-25T20:45:06.783 に答える