読者です 読者をやめる 読者になる 読者になる

配列を文字列に変換する。var_export、serialize、json_encode

php
$data = array(  
    'bool'   => true,  
    'int'    => 3,  
    'float'  => 1.23,  
    'string' => 'test',  
    'array'  => array('php', 'java', 'ruby'),  
    'key-value' => array(  
        'hot' => 'summer',   
        'cool' => 'autom',   
        'cold' => 'winter',  
    ),  
);    

この配列を文字列に変換!!!!!!!!!
1. var_export ()

$php = var_export($data, true);  
var_dump($php);  
/* 
string(267) "array ( 'bool' => true, 
  'int' => 3, 'float' => 1.23,  'string' => 'test',  'array' =>  
  array ( 0 => 'php',  1 => 'java', 2 => 'ruby', ), 
  'key-value' =>  array ( 'hot' => 'summer', 'cool' => 'autom', 'cold' => 'winter', ),)" 
*/ 
  • PHPとして解釈可能な文字列に変換
  • インポートする直接的に対応する関数はない!
    *eval()関数で文字列を評価する。(危険なのであまり使わない方向で)

2. serialize ()

$serial = serialize($data);  
var_dump($serial);  
// string(285) "a:6:{s:4:"bool";b:1;s:3:"int";i:3;s:5:"float";d:1.229999999999999982236431605997495353221893310546875;s:6:"string";s:6:"test";s:5:"array";a:3:{i:0;s:5:"php";i:1;s:6:"java";i:2;s:10:"ruby";}s:9:"key-value";a:3:{s:2:"hot";s:5:"summer";s:2:"cool";s:3:"auto";s:2:"cold";s:5:"winter";}}"  

*型、大きさ、値を保持する!
* unserialiseで配列に戻してくれる!

3. json_encode()

$json = json_encode($data);  
var_dump($json);  
// string(143) "{"bool":true,"int":1,"float":1.23,"string":"test","array":["php","java","ruby"],"key-value":{"hot":"summer","cool":autom","cold":"winter"}}"  
  • json_decodeで配列に戻してくれる!