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が表示されます。
