PHP はまだ比較的一般的に使用されているため、PHP 変数のシリアル化について研究し、ここで皆さんに共有したいと思います。シリアル化とは、おそらく、いくつかの変数を文字列のバイト ストリームに変換することで、送信と保存が容易になります。もちろん、送信や保存とは何の関係もありません。重要なのは、文字列形式に変換し直すことができ、元のデータ構造を維持できることです。
PHP 変数のシリアル化
PHP 変数のシリアル化とその保存形式を説明する簡単な例を示します。
整数:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">var</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">23</font></span><span>; </span></span></li> <li class=""><span>echo serialize($var); </span></li> </ol>
出力: i:23;
浮動小数点:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">var</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">1</font></span><span>.23; </span></span></li> <li class=""><span>echo serialize($var); </span></li> </ol>
出力: d: 1.2299999999999999822364316059974953532218 9331054 6875;
文字列:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">var</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">"This is a string"</font></span><span>; </span></span></li> <li class=""><span>echo serialize($var); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">var</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">"我是变量"</font></span><span>; </span> </li> <li class=""><span>echo serialize($var); </span></li> </ol>
出力: s:16:" これは文字列";s:8:"私は変数です";
Boolean:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">var</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">true</font></span><span>; </span></span></li> <li class=""><span>echo serialize($var); </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">var</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">false</font></span><span>; </span> </li> <li class=""><span>echo serialize($var); </span></li> </ol>
Output: b:1;b:0;
上記の基本型のシリアル化後の状況は非常に明確です。シリアル化後の格納形式は次のとおりです: 変数タイプ: [可変長:] 変数値; 最初の文字は変数タイプを表し、2 番目の文字は除算を表します。変数長はオプションです。つまり、文字列タイプでは Yes ですが、それ以外は指定できません。最後の値は変数値であり、シリアル化された各値は「;」で終わります。