PHP ですべてのエラーを表示する
-
error_reporting('E_ALL')
関数とini_set()
関数をdisplay_errors
ディレクティブとともに使用して、警告エラーを表示する -
error_reporting('-1')
関数とini_set()
関数をdisplay_errors
とdisplay_startup_errors
ディレクティブとともに使用してエラーを表示する -
php.ini
ファイルのディレクティブを変更して、PHP の解析エラーを含むすべてのエラーを表示する
error_reporting()
関数と ini_set()
関数を使用して、PHP スクリプトでエラーを表示する方法を紹介します。最初の方法はエラーを報告し、2 番目の方法は php.ini
ファイルまたは Apache 構成ファイルをオーバーライドし、現在のスクリプトのエラーのみを表示するようにオンにします。
同じ関数を使用して PHP エラーを表示する別の方法、つまり最初のメソッドと同じ error_reporting()
関数と ini_set()
関数を示します。このメソッドを最初のメソッドと区別する重要な点は、display_startup_errors
ディレクティブを持つ別の ini_set()
関数を使用し、error_reporting()
関数が引数として整数値をとることです。
php.ini
ファイルの構成を変更して、すべての PHP エラーを表示する永続的なソリューションを紹介します。上記の 2つの方法は、中括弧やセミコロンの欠落などの解析エラーの表示には役立ちません。
error_reporting('E_ALL')
関数と ini_set()
関数を display_errors
ディレクティブとともに使用して、警告エラーを表示する
error_reporting()
関数を使用して、PHP スクリプトのすべてのタイプのエラーを報告できます。そのために、関数の引数として名前付き定数 E_ALL
を使用します。あらゆる種類の PHP エラーを報告します。次に、ini_set()
関数を使用して、報告されたエラーを表示できます。この関数は、ディレクティブ display_errors
を true に設定します。したがって、php.ini
ファイルに構成を設定して、エラーの可視性を設定します。ただし、ディレクティブの元の値は、現在のスクリプトの実行後に php.ini
ファイルに復元されます。
デモンストレーションのために、スクリプトコードの最初の行として error_reporting(E_ALL)
を記述します。ini_set
関数で display_errors
を 1
に設定します。'This is a warning errorr'
のようなメッセージをエコーします。include()
関数を使用して、file.php
という外部ファイルをインクルードします。次に、スクリプトを実行します。
以下の例では、PHP で警告エラーを表示しようとしています。このエラータイプは、スクリプトの実行を停止せずに、スクリプトに問題があることを通知します。この例では、スクリプトにファイル file.php
が含まれています。ルートフォルダにそのようなファイルがないため、スクリプトはファイルをロードせず、エラーを表示しません。これは警告エラーであるため、echo
ステートメントがエラーとともに実行されます。error_reporting()
関数の詳細については、PHP マニュアルを参照します。
サンプルコード:
# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>
出力:
This is a warning error
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5**
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**
error_reporting('-1')
関数と ini_set()
関数を display_errors
と display_startup_errors
ディレクティブとともに使用してエラーを表示する
error_reporting()
関数も引数として整数値を取ります。このメソッドを使用して、PHP でエラーを表示できます。PHP には多くのレベルのエラーがあります。-1
レベルは、すべての PHP エラーを示します。値 -1
を渡すことは、新しいレベルと定数を使用しても、PHP の将来のバージョンで機能します。場合によっては、ini_set()
関数の display_errors
ディレクティブが、PHP の起動中に発生したエラーを常に処理するとは限りません。このような場合、display_startup_errors
を使用してエラーを表示できます。
たとえば、ini_set()
関数のディレクトリを display_startup_errors
および display_errors
として設定します。ini_set()
関数で 1
を示す true
に設定します。error_reporting
を -1
に設定します。変数 $a
に値 10 を割り当て、変数 $b
を出力します。
以下の例では、スクリプトで通知エラーが発生します。コードは未定義の変数を出力しようとします。ini_set()
関数の詳細については、PHP マニュアルを参照します。
サンプルコード:
#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>
出力:
**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**
php.ini
ファイルのディレクティブを変更して、PHP の解析エラーを含むすべてのエラーを表示する
上記が機能しない場合に PHP エラーを表示するように、php.ini
ファイルのディレクティブを変更できます。php.ini
ファイルには、PHP スクリプトの実行中に必要なデフォルトの構成が含まれています。上記のメソッドは、ランタイムでのみディレクティブの値を変更しますが、php.ini
ファイルを変更すると値が永続的に変更されます。ただし、本番レベルではこの方法に従うべきではありません。PHP の設定ファイルの詳細については、PHP マニュアルを確認してください。
php.ini
ファイルのディレクティブの値を変更するには、まずシステム内でファイルを見つけます。次のスクリプトを使用します。
#php 7.x
<?php
phpinfo();
?>
Loaded Configuration File
を見つけると、php.ini
ファイルの場所を確認できます。ファイルで、ディレクティブ display_errors
と display_startup_errors
を見つけ、値を on
に変更します。error_reporting
を見つけて、error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING
に変更します。次に、ApacheWeb サーバーを再起動します。
たとえば、PHP ファイルで error_reporting(-1)
を設定します。変数 $a
に値 Orange
を割り当てますが、その後にセミコロンを記述しないでください。変数を別の行に出力します。
コード例の出力セクションでは、解析エラーが発生して表示されます。したがって、php.ini
ファイルを構成すると、解析エラーも表示される可能性があります。
コード例:
#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>
出力:
**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn