私は次のように3つのソースファイルを持っています:
最初のものはsource_class.phpです
class MacMini
{
public $memory = "16 Gigabytes";
public $cpu = "Intel Core i7 @ 2.6GHz";
public $HD = "1TB @ 5200 rpms";
public function mem()
{
return $this->memory;
}
public function centralPU()
{
return $this->cpu;
}
public function hard_drive()
{
return $this->HD;
}
}
////////////////////////////////////////////////// /
2つ目はserialize.phpです
include "source_class.php";
$myMini = new MacMini;
$myMini->cpu = "Intel Core i7 @ 3.4GHz";
$serialized = serialize($myMini);
file_put_contents("store", $serialized);
//////////////////////////////////////////////
3つ目はunserialize.phpです
include "source_class.php";
$data = file_get_contents("store");
$unserialized = unserialize($data);
$myMini = new MacMini;
echo $myMini->cpu;
次の出力が生成されます:「IntelCore i7@2.6GHz」
なぜ、cpuのプロパティがserialize.phpファイルで変更された場合、それが逆シリアル化に反映されないのですか?シリアル化されたファイル「store」の生データの内容を確認しましたが、cpuプロパティはシリアル化されたファイルに反映されていますが、unserialize.phpでシリアル化されていない場合、プロパティの変更は反映されません。何故ですか?誰か説明できますか?