PHPのdisplay_errorsでエラーを表示させる方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPのdisplay_errorsでエラーを表示させる方法について現役エンジニアが解説しています。PHPでエラーを確認するために、php.iniファイルにdisplay_errorsの設定項目があります。本番環境ではなく開発環境ではエラーを表示するようにOnに設定しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、PHPのdisplay_errorsでエラーを表示させる方法について解説します。

 

なお本記事は、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のプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは、実際にエラー内容を表示させてみます。下記のように、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コースを提供しています。

PHPやフレームワークのLaravelを使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。