【PHP】エラーの出力設定

公開日:
更新日:
カテゴリー: PHP

PHPでエラーが起きるとそのエラー文が出力されるのですが、場合によってはエラー文を出力させたくないときやエラーレベルで出力可否を決めたい時などがあります。

この場合、error_reporting関数を使うと便利です。

エラーの出力の設定

error_reporting関数は、出力するエラーの種類を設定できるものです。

error_reporting(ここにレベルを指定)

この関数の詳細はこちらを参照して欲しいのですが、概ねこのようにしてエラーレベルの出力設定ができます。

<?php
//全てのエラー出力をオフにする
error_reporting(0);
//単純な実行時エラーを表示する
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//E_NOTICEを表示させる(初期化されていない変数、変数名のスペルミスなど…)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
//E_NOTICE以外の全てのエラーを表示する(これはphp.iniで設定されているデフォルト値)
error_reporting(E_ALL ^ E_NOTICE);
//全てのPHPエラーを表示する
error_reporting(E_ALL);
// 全てのPHPエラーを表示する
error_reporting(-1);
// error_reporting(E_ALL);と同じ
ini_set('error_reporting', E_ALL);
?>

上記方法でもエラーがでない場合

上記方法でもエラーが出ない場合、以下をプログラムの先頭に記述する方法もあります。

ini_set('display_errors', 'On');

HTTP_Requestを使用する際にエラーで動かなかったのですが、エラー文も出てこず困っていたのですが、これを記述すればエラーが出るようになりました。

PHPエラー

Warning: Invalid argument supplied for foreach()

配列ではない(配列が空)ものをforeachしている場合にこのエラーが出力される。

対策は、foreachする前にis_array関数で配列かどうかを確認するようにすればよい

<?php
//配列かどうかの確認
if(is_array($array)){
  //ループ
  foreach($array as $value){
    //ここに処理
  }
}
?>

Parse error: syntax error, unexpected T_VARIABLE

このエラーの場合、エラー箇所の前の実行文の最後に「;」がない場合が多い。

また、インデントを半角空白ではなく全角空白を使っている場合でもこのエラーとなる(この場合、プログラムに間違いがないのに視覚的に全角空白は確認できないのでエラー箇所がわからずドツボにはまるときがある)。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント