メインコンテンツまでスキップ

PHPデバッグ関数

1.var_dump 関数

var_dump 関数は、与えられた変数の型と値を出力します。<pre>タグを含めることで、出力を整形し、可読性を高めることができます。

使用例

public function index()
{
$string_data = array('a','b','c','d');
$num_data = array(1,2,3,4);

echo '<pre>';
var_dump($string_data);
echo '</pre>';
exit;

return $num_data;
}

実行すると $string_data 配列の中身が表示されます。

ちなみに<pre>タグがなければ下記のような表示になります。

<pre>タグを使用することで、出力を整形しています。配列の中身が多いときや多次元配列である場合は<pre>タグが必須といってもよいでしょう。 ここでexitを使用しましたがexitがないと処理が止まらずreturnされstring_dataは画面に表示されません。 exitを使用せずdumpのみで記述した場合は、検証ツール/ネットワーク/プレビューで確認できます。exitを使用しない方法はAPI通信の際に活躍します。 デバッグが完了したら、var_dump( ) を削除することを忘れないようにしてください。


2.dd関数

dd()はLaravel専用の関数です。 dd()は"dump and die" の略で基本的な使い方はvar_dump()exitと同様です。 実際にdump()die()で分けて使用することもできます。

使用例1

public function index()
{
// ログイン中のユーザー情報
$user = \Auth::user();
dd($user);

return view('user.index')->with('user',$user);
}

下記のように表示されます。

使用例2

foreach文の中身をすべて確認したいときはdump()とdie()を使用します。

public function index()
{
// ログイン中のユーザー情報
$user = \Auth::user();

// ユーザー情報を配列に変換
$user_array = $user->toArray();

// foreach文でユーザー情報を出力
foreach ($user_array as $key => $value) {
dump($key . ": " . $value);
}

die("デバッグ終了");

return view('user.index')->with('user',$user);
}

下記のように表示されます。


3.error_log関数

error_log関数の特徴としてはエラーを他のファイルに書き込むため、 デバッグ情報をウェブページに表示させることなく、ログファイルに保存できます。 またerror_log 関数はvar_dumpやdd関数と違い処理を止めずに変数の中身を確認することができます.

エラーログの書き方の例

error_log(print_r("変数名", true), "3", "/home/vagrant/sample/debug.log"); 

error_log 関数の引数

第一引数(Message) :

  • 役割: エラーログに記録したい情報(通常は文字列や変数の内容)を指定します。

第二引数(Type) :

  • 役割: エラーメッセージの重要度を指定します。
  • タイプの選択肢:
    • 0: 通常のエラーメッセージ
    • 1: システムエラー
    • 2: 警告メッセージ
    • 3: デバッグ情報 (デバッグの際に使用)

第三引数(Destination) :

  • 役割: エラーメッセージを記録するログファイルのパスを指定します。

使用例

public function index()
{
// ログイン中のユーザー情報
$user = \Auth::user();
error_log(print_r("$user", true), "3", "/home/vagrant/sample/debug.log");

return view('user.index')->with('user',$user);
}

print_r関数の第二引数にtrueを指定することで、print_r関数の戻り値を文字列として返します。 sampleディレクトリ内にdebug.logファイルが作成され下記のようにlogが表示されます。