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

PHPのシリアル化機能とネイティブのシリアル化機能の比較

墨辰丷
墨辰丷オリジナル
2018-06-11 10:09:562137ブラウズ

この記事では主に、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 は、基本的なデータベース接続、SQL ステートメントの実行、およびエラー プロンプトを実装します

php通常のマッチングと配列トラバーサル

php データベース クエリとパスワード マッチング関数

以上がPHPのシリアル化機能とネイティブのシリアル化機能の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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