この記事では主に、PHP シリアル化関数 Serialize() および unserialize() と PHP ネイティブ シリアル化メソッドとの比較を紹介します。お役に立てれば幸いです。
phpには、文字列をフォーマットして配列またはオブジェクトに変換する良い方法、つまりシリアル化があります。
変数をシリアル化するには 2 つの方法があります。
次の例では、serialize() 関数と unserialize() 関数を使用しています。
// a complex array $myvar = array( 'hello', 42, array(1,'two'), 'apple' ); // convert to a string $string = serialize($myvar); echo $string; /* prints a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";} */ // you can reproduce the original variable $newvar = unserialize($string); print_r($newvar); /* prints Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two ) [3] => apple ) */
これは、ネイティブの PHP シリアル化メソッドです。
しかし、近年の JSON の人気により、PHP5.2 では JSON 形式のサポートが追加されました。
これで json_encode() 関数と json_decode() 関数を使用できるようになります:
// a complex array $myvar = array( 'hello', 42, array(1,'two'), 'apple' ); // convert to a string $string = json_encode($myvar); echo $string; /* prints ["hello",42,[1,"two"],"apple"] */ // you can reproduce the original variable $newvar = json_decode($string); print_r($newvar); /* prints Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two ) [3] => apple ) */
これはより効率的で、特に JavaScript などの他の多くの言語との互換性があります。
注: 複雑なオブジェクトの場合、一部の情報が失われる可能性があります。関連する推奨事項:
PHPデータシリアル化の例はじめにintroduly化シリアル化シリアル化オブジェクトメソッドチュートリアルデテールシリアル化と脱介入の紹介
以上がPHPシリアル化関数serializeとネイティブメソッドの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。