Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. PHP入門編 - エラー時の処理とphp.iniについて

エラー時の処理とphp.iniについて

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

続きまして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開発での下準備が整ったところで続いての記事ではプログラム言語の大御所、『変数』についてやっていきたいと思います。

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

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。