プログラミング講座:::PHPアカデミー 東京校 |茅場町|

講師ブログ

PHPアカデミー > 講師ブログ

<< 前の記事
[ ソフトウェア設計哲学 ]
次の記事 >>
[ 綺麗なソースコード ]

PHPのerror_report

PHPパーサ内部ではいろいろなエラーが出力されます。それらのエラーは重要度に応じていくつかの種類があります。また、ユーザが自分で発生させたエラーにも重要度をつけられます。本文ではこの重要度をエラーレベルと呼びます。エラーレベルはphp.iniでも定義できますし、error_report関数などでも設定できます。

詳細はこちら:http://jp.php.net/error_reporting

今回は、E_NOTICEのエラーレベルを出力するか否かについて議論したいです。
E_NOTICEはすごい細かい情報を出してくれて、バグの混入リスクを下げる利点があるのに対し、PHPの利点でもあるコードの柔軟性(適当なコードでも動く)が失われてしまい、開発スピードが低下したり、コードが見づらくなってしまいます。

では、周りではどうなっているかを調査してみます。


php-5.2.5のphp.ini-recommended

error_reporting = E_ALL


php-5.2.5のphp.ini-php.ini-dist

error_reporting = E_ALL & ~E_NOTICE

はてなーのみなさん

多い方が、「E_NOTICEを出していない」

Unohラボは出してる見たい

http://labs.unoh.net/2006/11/e_notice.html
なんかばんざい(E_NOTICEを出すのに反対しているみたい)

http://tt25.org/blog/20080510/php-e-notice


次に、E_NOTICEを出したときの利点と欠点を整理します。

利点



  • 未定義変数を発見できる




欠点



  • 定義されていないhashのキーを参照するとエラーになってしまう。定義されているかわからないキーを使うときには、変数へアクセスするためのwrapperが必要になるだろう。



(追記があったら教えて下さい)


上記の反論:
未定義変数の発見→PHPEclipseなどのエディタを使うことで発見できるから、コンパイラでチェックしなくてもいい。


まとめ:いまのところ、E_NOTICEを出力する決定的な強みはないのでプロジェクトの好みで使えばいいと思う。

考察:E_NOTICEの回避方のノウハウなどがほとんど無いから、一般ではあんまり使われて無いだろうなぁ。PHPのデフォルトでもE_NOTICEは無効になっているし。


by プログラミング講座 松嶋 翼 | 記事URL | ページトップ | このエントリーを含むはてなブックマーク

<< 前の記事
[ ソフトウェア設計哲学 ]
次の記事 >>
[ 綺麗なソースコード ]

コメント

コメントを書く

:

:
:

PHPアカデミー 講師ブログ記事

スクール案内

レッスン会場

茅場町駅

受講料 (月謝制)

60分レッスン×月2回コース
96,000円より
(レッスンは全て講師と1対1のマンツーマンです!)

スクール開講時間

水曜日、日曜日以外: 21時 - 23時
水曜日、日曜日: 10時 - 22時
休校日: なし

必要なもの

ラップトップコンピュータ(推奨)

まずは無料体験レッスンを受けてみる

なんでも相談室

レッスンスタジオ

Powerd by Cyta.jp

PHPによるデザインパターン入門 (大型本)

PHPによるデザインパターン入門 (大型本)

デザインパターンとPHPが一度に学べるので、PHPの基礎を把握したらこの本を読んでみるのがいいと思います!

ウェブ進化論 本当の大変化はこれから始まる (新書)

ウェブ進化論 本当の大変化はこれから始まる (新書)

これは必読!これからのWebのあり方、日本と米国との違いをわかりやすく解説してくれます。これ読むと、がんばらなきゃ!とおもいます。

Bootcamp Elite Mission One: Get Started (2006)

Bootcamp Elite Mission One: Get Started (2006)

プログラムをしていると運動不足になりがち。そんなあなたに室内で行えるフィットネスDVD! ノリノリで腹筋を鍛えられます。今、日本では大人気で手元に届くのに数週間かかるようです!(俺もほしい)

 エンタープライズ アプリケーションアーキテクチャパターン

エンタープライズ アプリケーションアーキテクチャパターン

大規模開発に必要になる知識です。

WEB+DB PRESS Vol.50 (大型本)

WEB+DB PRESS Vol.50 (大型本)

subversionに比べ、gitは高速で便利。svnからgitへ乗り換えてかなり開発効率が良くなりました。さすがLinusさんが作っただけあります。