ホームページ > バックエンド開発 > PHPチュートリアル > [phpのクラスとオブジェクト] オブジェクトのシリアル化

[phpのクラスとオブジェクト] オブジェクトのシリアル化

不言
リリース: 2023-03-24 10:14:02
オリジナル
2768 人が閲覧しました

この記事の内容は、[php クラスとオブジェクト] オブジェクトのシリアル化に関するもので、必要な友達はそれを参照できるようになりました。

シリアル化されたオブジェクト - ストア。セッション内のオブジェクト

serialize() は、PHP 内のすべての値をシリアル化して、表現するバイト ストリームを含む文字列を返すことができます。 unserialize() 関数は、文字列を PHP の元の値に戻すことができます。

オブジェクトをシリアル化すると、オブジェクトのすべての変数が保存されますが、オブジェクトのメソッドは保存されず、クラスの名前のみが保存されます。


unserialize() オブジェクトでは、オブジェクトのクラスを定義する必要があります。

クラスAのオブジェクトをシリアル化すると、クラスAに関連し、オブジェクトのすべての変数の値を含む文字列が返されます。

別のファイル内のオブジェクトを逆シリアル化する場合は、クラスを定義するファイルをインクルードするか、関数 spl_autoload_register() を使用して、逆シリアル化する前にオブジェクトのクラスを定義する必要があります。

<?php// classa.inc:

  class A {
      public $one = 1;      public function show_one() {
          echo $this->one;
      }
  }// page1.php:

  include("classa.inc");  $a = new A;  $s = serialize($a);  // 把变量$s保存起来以便文件page2.php能够读到
  file_put_contents(&#39;store&#39;, $s);// page2.php:

  // 要正确了解序列化,必须包含下面一个文件
  include("classa.inc");  $s = file_get_contents(&#39;store&#39;);  $a = unserialize($s);  // 现在可以使用对象$a里面的函数 show_one()
  $a->show_one();?>
ログイン後にコピー
ログイン後にコピー

関数 session_register() を使用して、オブジェクトをセッションに保存します。これらのオブジェクトは、各ページの最後に自動的にシリアル化され、各ページの先頭に逆シリアル化されます。 したがって、オブジェクトがセッションに保存されると、アプリケーション全体のページで使用できるようになります。

オブジェクトの __sleep() メソッドと __wakeup() メソッドを使用して、シリアル化/逆シリアル化イベントを処理できます。

session_register() PHP 5.3.0 で非推奨となり、PHP 5.4.0 で削除されました。

オブジェクトのシリアル化

シリアル化されたオブジェクト - セッションにオブジェクトを保存します

serialize() は、PHP 内のすべての値をシリアル化し、表現するバイト ストリームを含む文字列を返すことができます。 unserialize() 関数は、文字列を PHP の元の値に戻すことができます。

オブジェクトをシリアル化すると、オブジェクトのすべての変数が保存されますが、オブジェクトのメソッドは保存されず、クラスの名前のみが保存されます。


unserialize() オブジェクトでは、オブジェクトのクラスを定義する必要があります。

クラスAのオブジェクトをシリアル化すると、クラスAに関連し、オブジェクトのすべての変数の値を含む文字列が返されます。

別のファイル内のオブジェクトを逆シリアル化する場合は、クラスを定義するファイルをインクルードするか、関数 spl_autoload_register() を使用して、逆シリアル化する前にオブジェクトのクラスを定義する必要があります。

<?php// classa.inc:

  class A {
      public $one = 1;      public function show_one() {
          echo $this->one;
      }
  }// page1.php:

  include("classa.inc");  $a = new A;  $s = serialize($a);  // 把变量$s保存起来以便文件page2.php能够读到
  file_put_contents(&#39;store&#39;, $s);// page2.php:

  // 要正确了解序列化,必须包含下面一个文件
  include("classa.inc");  $s = file_get_contents(&#39;store&#39;);  $a = unserialize($s);  // 现在可以使用对象$a里面的函数 show_one()
  $a->show_one();?>
ログイン後にコピー
ログイン後にコピー

関数 session_register() を使用して、オブジェクトをセッションに保存します。これらのオブジェクトは、各ページの最後に自動的にシリアル化され、各ページの先頭に逆シリアル化されます。 したがって、オブジェクトがセッションに保存されると、アプリケーション全体のページで使用できるようになります。

オブジェクトの __sleep() メソッドと __wakeup() メソッドを使用して、シリアル化/逆シリアル化イベントを処理できます。

session_register() PHP 5.3.0 で非推奨となり、PHP 5.4.0 で削除されました。

関連する推奨事項:

【phpクラスとオブジェクト】オブジェクトと参照

【phpクラスとオブジェクト】trait

【phpクラスとオブジェクト】最後のキーワード

以上が[phpのクラスとオブジェクト] オブジェクトのシリアル化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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