概要
特にデバッグ段階を意図して、変数の内容を文字列化する方法を整理する。
単純な文字列化
単純変数
単純変数はそのまま出力したり文字列連結したりできる。
1 2 3 4 5 |
echo $int . "\n"; // 100 echo $str . "\n"; // 文字列 |
配列
配列は自動的には文字列化されない。
1 2 3 4 5 |
echo $arr; // PHP Notice: Array to string conversion in /home... echo $asc; // PHP Notice: Array to string conversion in /home... |
implode()
関数を使えば、指定したセパレーターで配列の文字列化は可能。
1 2 3 4 5 |
echo implode(',', $arr) . "\n"; // 1,2,three,四 echo implode(',', $asc) . "\n"; // 1,弐,3 |
print_r
print_r()
関数は配列も含めて変数の内容を文字列化して表示するが、第2引数にtrue
を指定することで、文字列化された変数の内容を戻り値とするように変更できる。
単純変数のみPHP_EOL
が末尾に付加され、配列の末尾にはPHP_EOL
は付かない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
echo print_r($int, true) . "\n"; // 100 echo print_r($str, true) . "\n"; // 文字列 echo print_r($arr, true); // -------- コンソールの場合 -------- // Array // ( // [0] => 1 // [1] => 2 // [2] => three // [3] => 四 // ) // -------- ブラウザーの場合 -------- // Array ( [0] => 1 [1] => 2 [2] => three [3] => 四 ) echo print_r($asc, true); // -------- コンソールの場合 -------- // Array // ( // [one] => 1 // [2] => 弐 // [実数3] => 3 // ) // -------- ブラウザーの場合 -------- // Array ( [one] => 1 [2] => 弐 [実数3] => 3 ) |
var_export
var_export()
関数は配列も含めて変数の内容を文字列化して表示するが、第2引数にtrue
を指定することで、文字列化された変数の内容を戻り値とするように変更できる。
単純変数・配列に関わらず、末尾にPHP_EOL
は付加されない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
echo var_export($int, true) . "\n"; // 100 echo var_export($str, true) . "\n"; // '文字列' echo var_export($arr, true) . "\n"; // -------- コンソールの場合 -------- // array ( // 0 => 1, // 1 => 2.0, // 2 => 'three', // 3 => '四', // ) // -------- ブラウザーの場合 -------- // array ( 0 => 1, 1 => 2.0, 2 => 'three', 3 => '四', ) echo var_export($asc, true) . "\n"; // -------- コンソールの場合 -------- // array ( // 'one' => 1, // 2 => '弐', // '実数3' => 3.0, // ) // -------- ブラウザーの場合 -------- // array ( 'one' => 1, 2 => '弐', '実数3' => 3.0, ) |