オブジェクトのシリアル化と逆シリアル化は、Web 開発でよく使用されます。最も主流なのは、json 形式と xml 形式のシリアル化と逆シリアル化です。今日は、jsop の小さなデモを書きたかったのですが、php を使用できないことがわかりました。シリアル化の情報を確認してメモしました
PHP は、オブジェクトを json 形式でシリアル化/逆シリアル化するための json_encode 関数と json_decode 関数を提供します
$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas
シンプルな配列 XML 形式のシリアル化/逆シリアル化
PHP は、オブジェクトを XML 形式でシリアル化/逆シリアル化するための wddx_serialize_value 関数と wddx_deserialize 関数を提供します
$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas
HTMLトランスコードの関係で出力形式が変ですが、実際にシリアル化された文字列はこんな感じです
json 形式と比較すると、より多くのフィールドがあります。
複雑なオブジェクト json 形式のシリアル化/逆シリアル化 操作中に、処理するオブジェクトは単純な配列ではなく、カスタマイズされたオブジェクトの配列であることがよくあります。有能でもある。上記の配列と同様の内容を持つオブジェクトをカスタマイズします
class Me { public $name; public $age; public $friends; function __construct($name,$age,$friends) { $this->name=$name; $this->age=$age; $this->friends=$friends; } }
シリアル化された文字列形式が期待どおりであることがわかります。複雑なオブジェクトの XML 形式のシリアル化/逆シリアル化。同じ wddx_serialize_value 関数と wddx_deserialize 関数は、複雑なオブジェクトに対する XML 形式のシリアル化/逆シリアル化操作も可能です
$me1=new Me('Byron',24,array('Casper','Frank','Vincent')); $me2=new Me('Casper',25,array('Byron','Frank','Vincent')); $me3=new Me('Frank',26,array('Casper','Byron','Vincent')); //创建一个复杂的数组,子元素是自定义类,自定义类中包含数组字段 $array_me=array($me1,$me2,$me3); $json=json_encode($array_me); //序列化对象数组为json字符串 echo $json.'<br/>'; $a=json_decode($json); //将json字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.'<br/>'; }