ホームページ  >  記事  >  バックエンド開発  >  PHPシリアル化関数serializeとネイティブメソッドの比較

PHPシリアル化関数serializeとネイティブメソッドの比較

*文
*文オリジナル
2017-12-28 09:23:261464ブラウズ

この記事では主に、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。