マジックメソッドを巡る旅 その8
2015/12/28 9:28
※この記事は読者によって投稿されたユーザー投稿です:
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「マジックメソッドを巡る旅 その8」を公開しました。
「serialize() 、unserialize() 経由で__sleep(), __wakeup()のマジックメソッド」の続きになります。
頑張っていきましょう。
さて少し見ておきたいのが日本語入りの情報です。
serializeとjsonで、そこそこの違いが見えてきます。
$awk = array(‘あいうえお’);
//
$s = serialize($awk);
//$s = json_encode($awk);
//
var_dump( $s );
serializeの結果
string(33) “a:1:{i:0;s:15:”あいうえお”;}”
jsonの結果
string(34) “[“\u3042\u3044\u3046\u3048\u304a”]”
jsonの場合、マルチバイトは、Unicodeエスケープされます(json自体「ユニコードを常にエスケープするべきか」って
あたりはまた別途議論があるのですが、PHPのjson_encode関数は、常にUnicodeエスケープをします)。
もし、serializeとjsonを「文字列の長さだけ」で判断しようとする場合、マルチバイトの有無や含まれる比率、は、
考察時に重要なポイントかもしれません。
さて。
serializeの最大の眼目は「配列ではなくてインスタンス(オブジェクト)を渡した時」になります。
この続きは以下をご覧ください
http://resocia.jp/column/2085/
ソーシャルもやってます!