Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. PHPBeginner - About Error Handling and php.ini

About Error Handling and php.ini - Japanese Only

みなさまどうも。いかがお過ごしでしょうか。

続きましてPHPのエラー時の処理について色々とやっていきましょう。

これまでの記事でわざと動かないPHPコードを書いたり色々としてきたわけでございますが、デフォルトのPHPの設定では動かないPHPコードを実行させてみるとページが真っ白になるだけだったと思います。

ページが真っ白になるだけだとどこがエラーなのか全くさっぱり分からなかったりしますよね。少々開発がやりづらい感じになっちゃってます。しかし、とある設定をすることでどこがエラーなのかPHPちゃんが教えてくれるようになります。

というわけでPHP本体の設定をちょいといじってみましょう。PHP本体の設定は『php.ini』というテキストファイルをいじることで設定できます。『php.ini』というファイル名はサーバーにインストールしたPHPでも、『MAMP』で動いているPHPでも、『XAMPP』で動いているPHPでも、全く変わりません。

ただし、インストールしたパッケージの種類やOSによって『php.ini』の場所が多少違ったりします。なのでその確認方法からやっていきましょう。

あ、あとOSの設定で『拡張子を非表示』にしている場合は拡張子を表示させるようにしてください。開発をする際の拡張子の表示は必須です。拡張子を表示する方法や、拡張子についての概要なんかはこちらの記事を参考にすると良いです。

(´-`).。oO(なぜ各OSのデフォルトの設定が『拡張子を隠す』になっているのか未だに理解ができないのでございます...)

では『php.ini』の場所の確認方法ですが、「php.ini 場所」とgoogle先生に聞いてしまうのもありです。しかし、そんなgoogle先生のお手を煩わすことなく確認する方法があります。というわけで紹介します。『phpinfo()』ちゃんです。

<?php
phpinfo();

これを実行させると以下のような画面が出てきます。

こんな感じで『phpinfo()』を実行させると今現在動いているPHPの情報とかを出力することができます。

この出力した画面の中の真ん中あたりに『Loaded Configuration File』って項目がありますよね。その右側に書いてある内容が『php.ini』の場所になります。『phpinfo()』で出力したページにはPHPのバージョンや動いているウェブサーバーソフトウェアの現在の設定など様々な項目が出力されているので、設定を確認したいときなんかは『phpinfo()』ちゃんを実行させればOKです。

さて、では『php.ini』の場所がわかったところで、設定変更をやっていきましょう。『php.info』はただのテキストファイルですので『php.ini』を適当なテキストエディタで開いてみてください。

そしたらその『php.ini』の真ん中?あたりに『display_errors = Off』って書いてあるところがあるかと思います。これがエラー出力をするかどうかの設定になりますので『display_errors = On』に変更しちゃってください。

そしてもう一箇所修正する必要があります。『display_errors = On』のちょっと上あたりに『error_reporting = E_ALL』とか書いてあるところがありますね。初期設定では『error_reporting = E_ALL』ってなっているかと思いますが、もし違っていたら『error_reporting = E_ALL』と記述してしまってください。これはどのレベルのエラーを出力するか、という設定で『E_ALL』としてしまえば大体のエラーを拾ってくれるようになります。

PHPでは『php.ini』のerror_reportingの値を直接編集しなくても『error_reporting()』を実行させることで出力するエラーレベルを変更することができます。以下のようにPHPファイルの頭にぽんっと記述しておけばOKです。

<?php
error_reporting(E_ALL);

なので一時的に出力するエラーレベルを上げたり下げたりしたい、といった場合は『error_reporting()』を使用すると良いでしょう。

注意点として『php.ini』で『display_errors = On』となっていないと『error_reporting()』は動きません。

なので、もし『error_reporting()』が動かなかった場合は『php.ini』を確認して『display_errors = On』となっているかどうかチェックしてみると幸せになれるかもしれません。

さて、では『php.ini』の記述を変更したらそれを保存して『MAMP』を再起動させてください。『php.ini』の記述を変更した場合はPHP本体(今回の場合は『MAMP』)を再起動させないと設定が変更されませんので要注意です。

では早速試してみましょう。動かない『Hello world』プログラムを書いてみました。

<?php
echo 'Hello world'

『;』が抜けちゃってますね。さて、これを実行させると以下のテキストが返ってきます。

Parse error: syntax error, unexpected end of file, expecting ',' or ';' in /Users/xxxx/Desktop/test/index.php on line 3

これは「3行目あたりで『,』とか『;』とか書き忘れてね?」って意味になります。英語ですがエラーを起こすとこんな感じで怪しいところを拾ってくれますので『;』とか忘れる程度のエラーならハマること無くやっつけられるでしょう。これで開発がとってもやりやすくなりました。

というわけでPHPでのエラーの処理とか『php.ini』の設定とかは以上となりますね。

さて、php開発での下準備が整ったところで続いての記事ではプログラム言語の大御所、『変数』についてやっていきたいと思います。

引き続き頑張っていきましょう。ではではこの辺で。失礼致します。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .