オーダーメイドコース
icon
icon

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講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。