プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
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");

■debug_test_inc.php
<?php
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));

結果はこんな感じφ(--)
-------------- 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
        )

)

取りあえず、そんな感じ(--)ノ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事