2013.
12.
05
16:13:19
なんか訊かれたのでメモっておきます。
私はPHPをテキストで書く人なので、デバッグツールとか使わないのです。
なもんで、基本的には変数の内容をどこかに出力して確認しています。
という訳で、デバッグ時によく使う関数はこんな感じφ(--)
■文字列の中身を確認
print():プリントな気分のとき
echo():えこーな気分のとき
■オブジェクトの中身を確認
print_r():ざっくり見たいとき
var_dump():じっくり見たいとき
■構造とかを確認
debug_backtrace():関数呼び出し元のバックトレースを確認したいとき
get_included_files():インクルードされているファイルを確認したいとき
get_defined_constants():読み込まれている定数を確認したいとき
中でもよく使うのは「print()」「var_dump()」「debug_backtrace()」でしょうか。
print()とecho()の違いが気になる方は「PHP、printとechoの違い」をご覧ください。
個人的にprint()とecho()はあまり使い分けはしていません。
これだけで終わるのもなんなので、一応動作確認用のサンプルを置いておきますね。
コードはこんな感じφ(--)
■debug_test_define.php
■debug_test_inc.php
■debug_test.php
結果はこんな感じφ(--)
取りあえず、そんな感じ(--)ノ
私はPHPをテキストで書く人なので、デバッグツールとか使わないのです。
なもんで、基本的には変数の内容をどこかに出力して確認しています。
という訳で、デバッグ時によく使う関数はこんな感じφ(--)
■文字列の中身を確認
print():プリントな気分のとき
echo():えこーな気分のとき
■オブジェクトの中身を確認
print_r():ざっくり見たいとき
var_dump():じっくり見たいとき
■構造とかを確認
debug_backtrace():関数呼び出し元のバックトレースを確認したいとき
get_included_files():インクルードされているファイルを確認したいとき
get_defined_constants():読み込まれている定数を確認したいとき
中でもよく使うのは「print()」「var_dump()」「debug_backtrace()」でしょうか。
print()とecho()の違いが気になる方は「PHP、printとechoの違い」をご覧ください。
個人的にprint()とecho()はあまり使い分けはしていません。
これだけで終わるのもなんなので、一応動作確認用のサンプルを置いておきますね。
コードはこんな感じφ(--)
■debug_test_define.php
<?php
define("VAL01", "1");
define("VAL02", "2");
define("VAL03", "3");
define("VAL01", "1");
define("VAL02", "2");
define("VAL03", "3");
■debug_test_inc.php
<?php
function func01(){
func02();
}
function func02(){
var_dump(debug_backtrace());
}
function func01(){
func02();
}
function func02(){
var_dump(debug_backtrace());
}
■debug_test.php
<?php
require(dirname(__FILE__) . '/debug_test_inc.php');
require(dirname(__FILE__) . '/debug_test_define.php');
$str01 = "ほげほげ";
$array01 = array(
'a' => 'あ',
'b' => 'い',
'c' => 'う',
array(
'd' => 'え',
'e' => 'お',
),
);
print "\n-------------- print --------------\n";
print $str01;
print "\n-------------- echo --------------\n";
echo $str01;
print "\n-------------- print_r --------------\n";
print_r($array01);
print "\n-------------- var_dump --------------\n";
var_dump($array01);
print "\n-------------- debug_backtrace --------------\n";
func01(); //debug_test_inc.php内
print "\n-------------- get_included_files --------------\n";
var_dump(get_included_files());
print "\n-------------- get_defined_constants --------------\n";
print_r(get_defined_constants(true));
require(dirname(__FILE__) . '/debug_test_inc.php');
require(dirname(__FILE__) . '/debug_test_define.php');
$str01 = "ほげほげ";
$array01 = array(
'a' => 'あ',
'b' => 'い',
'c' => 'う',
array(
'd' => 'え',
'e' => 'お',
),
);
print "\n-------------- print --------------\n";
print $str01;
print "\n-------------- echo --------------\n";
echo $str01;
print "\n-------------- print_r --------------\n";
print_r($array01);
print "\n-------------- var_dump --------------\n";
var_dump($array01);
print "\n-------------- debug_backtrace --------------\n";
func01(); //debug_test_inc.php内
print "\n-------------- get_included_files --------------\n";
var_dump(get_included_files());
print "\n-------------- get_defined_constants --------------\n";
print_r(get_defined_constants(true));
結果はこんな感じφ(--)
-------------- print --------------
ほげほげ
-------------- echo --------------
ほげほげ
-------------- print_r --------------
Array
(
[a] => あ
[b] => い
[c] => う
[0] => Array
(
[d] => え
[e] => お
)
)
-------------- var_dump --------------
array(4) {
["a"]=>
string(3) "あ"
["b"]=>
string(3) "い"
["c"]=>
string(3) "う"
[0]=>
array(2) {
["d"]=>
string(3) "え"
["e"]=>
string(3) "お"
}
}
-------------- debug_backtrace --------------
array(2) {
[0]=>
array(4) {
["file"]=>
string(43) "C:\xampp\htdocs\etc_test\debug_test_inc.php"
["line"]=>
int(4)
["function"]=>
string(6) "func02"
["args"]=>
array(0) {
}
}
[1]=>
array(4) {
["file"]=>
string(39) "C:\xampp\htdocs\etc_test\debug_test.php"
["line"]=>
int(31)
["function"]=>
string(6) "func01"
["args"]=>
array(0) {
}
}
}
-------------- get_included_files --------------
array(3) {
[0]=>
string(39) "C:\xampp\htdocs\etc_test\debug_test.php"
[1]=>
string(43) "C:\xampp\htdocs\etc_test\debug_test_inc.php"
[2]=>
string(46) "C:\xampp\htdocs\etc_test\debug_test_define.php"
}
-------------- get_defined_constants --------------
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_RECOVERABLE_ERROR] => 4096
[E_WARNING] => 2
~~ 中略 ~~
[user] => Array
(
[VAL01] => 1
[VAL02] => 2
[VAL03] => 3
)
)
ほげほげ
-------------- echo --------------
ほげほげ
-------------- print_r --------------
Array
(
[a] => あ
[b] => い
[c] => う
[0] => Array
(
[d] => え
[e] => お
)
)
-------------- var_dump --------------
array(4) {
["a"]=>
string(3) "あ"
["b"]=>
string(3) "い"
["c"]=>
string(3) "う"
[0]=>
array(2) {
["d"]=>
string(3) "え"
["e"]=>
string(3) "お"
}
}
-------------- debug_backtrace --------------
array(2) {
[0]=>
array(4) {
["file"]=>
string(43) "C:\xampp\htdocs\etc_test\debug_test_inc.php"
["line"]=>
int(4)
["function"]=>
string(6) "func02"
["args"]=>
array(0) {
}
}
[1]=>
array(4) {
["file"]=>
string(39) "C:\xampp\htdocs\etc_test\debug_test.php"
["line"]=>
int(31)
["function"]=>
string(6) "func01"
["args"]=>
array(0) {
}
}
}
-------------- get_included_files --------------
array(3) {
[0]=>
string(39) "C:\xampp\htdocs\etc_test\debug_test.php"
[1]=>
string(43) "C:\xampp\htdocs\etc_test\debug_test_inc.php"
[2]=>
string(46) "C:\xampp\htdocs\etc_test\debug_test_define.php"
}
-------------- get_defined_constants --------------
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_RECOVERABLE_ERROR] => 4096
[E_WARNING] => 2
~~ 中略 ~~
[user] => Array
(
[VAL01] => 1
[VAL02] => 2
[VAL03] => 3
)
)
取りあえず、そんな感じ(--)ノ