システム開発ブログ/ 企画開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

phpプログラムでエラーがまったく表示されない

中村(次)
中村(次) (2010年6月18日 18:00)
企画開発部 / PHP

先日、PHPのプログラムを組んでいる際に、明示的にエラーを発生させても、
画面が真っ白になるだけで、エラーがまったく表示されない状態になりました。

調べたところ、原因はphp.iniの以下の設定にありました。

○display_errors : エラー表示の有無
この項目が「display_errors = Off」になっていたため、エラーが表示されませんでした。

また、以下の項目も原因となりえます。

○error_reporting : エラーレベルの設定
これは、notice、warn、errorなどのエラーのレベルを設定するものです。

例:
error_reporting = E_ALL   ⇒ 全てのエラーと警告を表示
error_reporting = E_ERROR  ⇒ エラーのみ表示
error_reporting = E_WARNING ⇒ 警告のみ表示
error_reporting = E_NOTICE  ⇒ 警告のみ表示

E_WARNINGとE_NOTICEの違いですが、
E_WARNINGは警告というより、エラーの部類になります。
致命的ではないが、エラーが発生している状態です。
E_NOTICEはただの警告で、例えば、
存在しないキーで配列から値を取り出した場合などに発生します。

例えば、この設定が、開発環境と本番環境の設定が異なっている場合は、
開発では表示されないが、本番では表示されるなどの状況が発生します。
ただ、NOTICEだろうが、エラーには変わりないですし、潜在的なバグを防ぐためにも
開発時は、「E_ALL」に設定して、全てのエラー、警告を表示させるのがいいと思います。

上記の設定に問題がなければ、エラーが表示されるようになると思います。
もし仮に上記でも動かない場合は、実際のソースをチェックしてみてください。
メソッドの実行時や変数使用時に、メソッド名、変数名の頭に「@」が付いていると、
php.iniでエラーの出力の設定がされていても表示されなくなってしまいます。

例:$string = @list['aaaaa'];
※「aaaaa」がキーの値がlistの中になくても、警告は表示されません。

ほとんどの場合は、「display_errors」の設定で表示されるようになると思いますが、
それでも表示されない場合は、他の2箇所も調べてみてください。


「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。