今日、class.quickskin.PHP のコードを見ていたら、これまで見たことのない関数がシリアル化されていました。Master と Xiaobai はそれについて質問しましたが、結果として理解できませんでした。ローカルでテストしたほうが良いのですが、これもまた愚かでした。 。 。 。
実際、この種の問題は非常に単純であり、多くの場合、私たちは単に怠け者です。 。 。 。
言語でプログラムを説明するのは難しい場合が多く、特に私のような初心者にとっては、コードを見るだけのほうが簡単です。
PHP5マニュアルの説明は以下のとおりです。一見するとややこしいように感じますが、テスト後にもう一度読むとわかりやすくなります。
簡単に言えば、serialize($param) は $param の値をシリアル化することです。UCHOME データベースの一部のフィールドはこのようなデータに格納されているようです (a:1:{s:7:"apppath";s:0 : "";})、unserialize($param) はシリアル化の逆の操作に似ており、シリアル化された値を対応する文字列に変換します。この変換は数値変数と文字列変数に対して実行可能ですが、それぞれ配列とオブジェクト インスタンスに対して実行可能です。 「配列」および「キャッチ可能な致命的なエラー: クラス オブジェクトのオブジェクトを文字列に変換できませんでした」というエラー メッセージが表示されます。
serialize() はリソースタイプを除くすべてのタイプを処理でき、オブジェクト
<?php $array = array(); $array['keys'] = 'www'; $array['values']='11111'; $a = serialize($array); echo $a; unset($array); $a = unserialize($a); print_r($a); ?>
output
a:2:{s:4:"keys";s:3:"www";s:6 :" をシリアル化することもできます。値";s:5:"11111";}
Array ( [keys] => www [values] => 11111 )
クラスにも同じことが当てはまります
以上がSerialize()関数とunserialize()関数の説明例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。