実装上で配列・連想配列などで実装されているものをファイルなどに出力する場合、文字列に変換する必要がある。 PHPではserialize・unserializeを使用して、文字列への変換と読み込みを行う。
<?php $data = [ 'user1'=>['name'=>'Taro', 'age'=>18], 'user2'=>['name'=>'Jiro', 'age'=>15], 'user3'=>['name'=>'Saburo', 'age'=>10] ]; $serialized_data = serialize($data); echo 'serialized: '.$serialized_data."\n"; $unserialized_data = unserialize($serialized_data); echo 'unserialized: user1.name => '.$unserialized_data['user1']['name'];
配列をserialize()
というメソッドに渡すと、文字列に変換したものを返却してくれる。
今度はこれをunserialize()
に渡すと、元の状態のオブジェクトを取得できる。
実際に実行してみると、
$ php serialize_sample.php serialized: a:3:{s:5:"user1";a:2:{s:4:"name";s:4:"Taro";s:3:"age";i:18;}s:5:"user2";a:2:{s:4:"name";s:4:"Jiro";s:3:"age";i:15;}s:5:"user3";a:2:{s:4:"name";s:6:"Saburo";s:3:"age";i:10;}} unserialized: user1.name => Taro
となる。 これで簡単にオブジェクトの書き出しと読み込みが可能になるが、暗号化されるわけではないので重要な情報の受け渡しには注意しましょう。
いまどきのアルゴリズムを使いこなす PHPプログラミング開発テクニック
posted with amazlet at 17.03.12