ホームページ > バックエンド開発 > PHPチュートリアル > シンプルな PHP オブジェクトのシリアル化 learning_PHP チュートリアル

シンプルな PHP オブジェクトのシリアル化 learning_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:27:47
オリジナル
869 人が閲覧しました

PHP はまだ比較的一般的に使用されているため、PHP オブジェクトのシリアル化について勉強し、ここで皆さんに共有したいと思います。 PHP オブジェクトのシリアル化も比較的一般的な関数であり、オブジェクトを文字列にシリアル化し、保存または送信できます。まず例を見てみましょう:

<ol class="dp-xml">
<li class="alt"><span><span>classTestClass  </span></span></li>
<li class=""><span>{  </span></li>
<li class="alt"><span>var$a;  </span></li>
<li class=""><span>var$b;  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>functionTestClass()  </span></li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">a</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"Thisisa"</font></span><span>;  </span>
</li>
<li class="alt">
<span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">b</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"Thisisb"</font></span><span>;  </span>
</li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>functiongetA()  </span></li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>return$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>a;  </span>
</li>
<li class="alt"><span>}  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>functiongetB()  </span></li>
<li class=""><span>{  </span></li>
<li class="alt">
<span>return$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>b;  </span>
</li>
<li class=""><span>}  </span></li>
<li class="alt"><span>}  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">obj</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">newTestClass</font></span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">str</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">serialize</font></span><span>($obj);  </span>
</li>
<li class=""><span>echo$str;  </span></li>
</ol>
ログイン後にコピー

出力結果:

<ol class="dp-xml"><li class="alt"><span><span>O:9:"TestClass":2:{s:1:"a";s:9:"Thisisa";s:1:"b";s:9:"Thisisb";} </span></span></li></ol>
ログイン後にコピー

オブジェクトのシリアル化後の文字列を分析してみましょう。

<ol class="dp-xml">
<li class="alt"><span><span>O:9:"TestClass":2:  </span></span></li>
<li class=""><span>{  </span></li>
<li class="alt"><span>s:1:"a";s:9:"Thisisa";  </span></li>
<li class=""><span>s:1:"b";s:9:"Thisisb";  </span></li>
<li class="alt"><span>} </span></li>
</ol>
ログイン後にコピー

まずオブジェクト自体の内容を見てください: O:9:"TestClass":2:O はこれがオブジェクト型 (オブジェクト) であることを示し、次に 9 はオブジェクトの名前を表し、2 はオブジェクトの名前を表します。 is オブジェクトが複数のプロパティを持つことを表します。 2 つの属性の内容を見ると、 s:1: "a"; s:9: "Thisisa"; という配列の内容と似ています。 2 番目の項目 s:9:"Thisisa" は属性値を記述します。次のプロパティも同様です。まず、PHP オブジェクトのシリアル化の応用について説明します。以下の内容は PHP マニュアルからのものであり、原文は変更されていません。 serialize() は、PHP に格納できる任意の値のバイト ストリーム表現を含む文字列を返します。 unserialize() は、この文字列を使用して元の変数値を再構築できます。シリアル化を使用してオブジェクトを保存すると、オブジェクト内のすべての変数が保存されます。オブジェクト内の関数は保存されず、クラス名のみが保存されます。

オブジェクトを unserialize() できるようにするには、オブジェクトのクラスを定義する必要があります。つまり、page1.php でクラス A のオブジェクト $a をシリアル化すると、クラス A を指し、$a 内のすべての変数の値を含む文字列が得られます。それを page2.php で逆シリアル化し、クラス A のオブジェクト $a を再構築したい場合は、クラス A の定義が page2.php に存在する必要があります。これは、たとえば、クラス A の定義をインクルード ファイルに配置し、このファイルを page1.php と page2.php の両方にインクルードすることで実現できます。

りー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446493.html技術記事 PHP はまだ比較的一般的に使用されているため、PHP オブジェクトのシリアル化を研究し、ここで共有しました。皆さんのお役に立てれば幸いです。 PHP オブジェクトのシリアル化も比較的一般的です...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート