私は、sericalize()関数を使用してMySQLデータベースに保存され、その後unserialize()を使用して変換された複雑な構造を持っています。システムをPHP 5.3からPHP 5.6に移行し、5.3でシリアライズされたデータを5.6でシリアライズした後、構造が壊れています。オブジェクトへの参照は、代わりに配列として表示されるようになりました。PHP 5.3からPHP 5.6への移行
私の質問は以下のとおりです。
異なるPHPバージョンでシリアライズ/デシリアライズによって使用される別のエンコーディングに関する仕様はありますか?
シリアル化されたデータをPHP 5.3エンコーディングからPHP 5.6エンコーディングに変換するにはどうすればよいですか?(Google検索やPHP.netのドキュメントで十分に具体的なものは見つかりませんでした)
こんにちは、 あなたはシリアル化されているものについて詳しく説明できますか?それはクラスなのか、データの配列なのでしょうか? –
オブジェクトを逆シリアル化するときは、クラス定義をコードに含める必要があります。したがって、オブジェクトを格納した場所から通常のコードベースの外側でテストしている場合や、オブジェクト構造を変更した場合は、正しくデシリアライズしません。オブジェクト構造を変更する必要がある場合は、古いオブジェクトを保持し、新しい構造を使用して新しいオブジェクトを再作成して再初期化します。 (私はそれをテストする立場にないので答えとして投稿しませんが、探しているものです) – Robbie