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

*文
リリース: 2023-03-18 17:14:01
オリジナル
1277 人が閲覧しました

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!