PHPのdisplay_errorsでエラーを表示させる方法を現役エンジニアが解説【初心者向け】
初心者向けにPHPのdisplay_errorsでエラーを表示させる方法について現役エンジニアが解説しています。PHPでエラーを確認するために、php.iniファイルにdisplay_errorsの設定項目があります。本番環境ではなく開発環境ではエラーを表示するようにOnに設定しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、PHPのdisplay_errorsでエラーを表示させる方法について解説します。
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。
今回は、PHPに関する内容だね!
どういう内容でしょうか?
PHPのdisplay_errorsでエラーを表示させる方法について詳しく説明していくね!
お願いします!
display_errorsとは
プログラムを書く場合に、エラーを確認することはデバッグにおいて重要です。
PHPでエラーを確認するために、エラー内容を表示する方法として、display_errorsを使うことができます。このdisplay_errorsでエラー内容を表示するには、PHPの設定ファイル(php.ini)で、
display_errors = On
と設定します。(設定後は、WEBサーバの再起動が必要になります。)
この設定を行うことにより、PHPで出力されるHTMLにエラー内容が表示されるようになります。
※あくまで開発をサポートするために表示する内容であって、本番のシステムでは使用しません。 (例えばインターネット上に公開されているWEBアプリケーションなど)。
display_errorsの書き方
display_errorsはPHPの設定ファイルに記載する、ということを前項でお伝えしましたが、プログラム中で動的に設定することもできます。そのためには、PHPのプログラムに下記のように記述します。
<?php ini_set('display_errors', "On"); ?>
このように記述することで、このプログラムで実行されるPHPでエラーが発生した場合、出力されるHTMLの先頭にエラー内容が表示されます。
逆に、表示をしないようにするには、
ini_set('display_errors', "Off");
と記述します。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
実際に書いてみよう
それでは、実際にエラー内容を表示させてみます。下記のように、ini_set(‘display_errors’, “On”); を記述することで、エラー内容が表示されるのが確認できます。
エラー表示テスト こちらで2つのエラー(Warning)が表示されます。
Warning: Division by zero in /root/sample/webroot/session_test.php on line 3 Warning: Invalid argument supplied for foreach() in /root/sample/webroot/session_test.php on line 5
エラー表示テストなお、ソース表示をすると、
<br /> <b>Warning</b>: Division by zero in <b>/root/sample/webroot/session_test.php</b> on line <b>3</b><br /> <br /> <b>Warning</b>: Invalid argument supplied for foreach() in <b>/root/sample/webroot/session_test.php</b> on line <b>5</b><br />
となっており、HTMLタグが挿入されているのがわかります。
ちなみに、 ini_set(‘display_errors’, “On”); を記述しなくても、エラー表示がされる場合があります。これは、PHPの設定ファイルのデフォルトがエラー内容を表示をするように設定されているからです。
筆者プロフィール
メンターYさん
フリーランスエンジニアとして、PHPを中心としたWEB開発全般を行う。最近では、WordPressを使ったメディアの構築・運用を多くこなしている。 元々は大手通信会社のエンジニアで、セキュリティに関する仕事をするも、大企業が肌に合わず独立。一箇所に縛られての仕事を苦手とし、自宅とカフェとコワーキングスペースを行ったり来たりしている。 ただ、自宅にいるとどうしてもゲームをしてしまうため、コワーキングスペースの比率が大きい。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。