PHP開発時のエラーレベル設定について。

デフォルトではNOTICEは表示されない設定ですが、NOTICEって取り除く必要はないのでしょうか?
私個人としては取り除いた方がより正確なプログラムになり、メンテナンス性も向上し、トラブルも減ると思っておりますので、エラーレベルをE_ALLにして開発時にすべて取り除いておりました。
しかし、よく他社が作成したプログラムの改修を行うとNOTICEエラーだらけなのが多いので、一般的にどうなのか気になっていました。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/12/28 11:51:23
  • 終了:2011/01/04 11:55:03

ベストアンサー

id:ko8820 No.3

ko8820回答回数1221ベストアンサー獲得回数692010/12/29 01:30:15

ポイント22pt

>一般的にどうなのか気になっていました

まず開発言語にPHPを選ぶところは、低予算であることが多く、

かつ比較的重要度が低いシステムの場合が多いです。

で、受注条件とかにNOTICEは駄目ですとか規定がなければ、エラーじゃないという認識です。

受注条件になくても、開発規約とかで明確に設定されてる場合を除いて、ない場合は、やっぱり

取り除こうとする人は皆無です。

CとかJavaとかで、コンパイル時にワーニングは駄目とか、ワーニングレベルはここまでで

とかそういうのと同じです。こういうのも、受注条件とかになければワーニングだらけとかも

たまにありますが、こちらは標準の設定でもそこそこのレベルに設定されてるので

目に見えるということで、注意する人はおおいでしょう。

残念ながら、PHPで開発してる人で、NOTICEエラーがあること自体を知らない人も多数いますので

質問文のようになるのは仕方がないでしょう。

id:nakamuraaaaa

そういえばCやJavaにもエラーレベルの設定がありましたね。

どの言語でもこのような問題はありますね。

確かにPHP開発者はスキルの差がものすごく激しいと感じているので、エラーレベルの設定自体理解していない人が多いというのは納得です。

2010/12/30 10:24:50

その他の回答(3件)

id:tasklight No.1

tasklight回答回数323ベストアンサー獲得回数402010/12/28 12:07:37

ポイント23pt

Noticeは、PHPの文法を細かくチェックしてくれます。

たとえば定数の二重定義はNoticeレベルでないとチェックできません。


「とりあえず動けばいいや」程度のプログラムでしたら外してもいいでしょうが、商用サイトなどのように信頼性を求められるサイトではONにした方が良いと思います。


「とりあえず動けばいいや」程度のスクリプトが大量に入っているレンタルサーバでは、サーバの負荷やエラーログの大きさを考え、あえてNoticeを外しているという話を聞いたことがあります。

id:nakamuraaaaa

オープンソースで公開しているプログラムはnoticeを明示的にプログラム内で外しているものをたまにみかけますね。

2010/12/30 10:15:39
id:tipsm No.2

tipsm回答回数5ベストアンサー獲得回数02010/12/28 12:39:19

ポイント23pt

> トラブルも減ると思っておりますので、エラーレベルをE_ALLにして開発時にすべて取り除いておりました。

そうすべきです。


> しかし、よく他社が作成したプログラムの改修を行うとNOTICEエラーだらけなのが多いので、一般的にどうなのか気になっていました。

単に技術力が無いか、または やっつけで作ったプログラムだと思います。

id:nakamuraaaaa

やっつけってのはよくありそうですね。

改修依頼を受けるのって、大体前の方が対応してくれないとかいまいちとかが原因でかわりにやってくれないかというご相談が多いので。

そういう場合はたいていできが悪いプログラムな場合が多いですね。

2010/12/30 10:23:09
id:ko8820 No.3

ko8820回答回数1221ベストアンサー獲得回数692010/12/29 01:30:15ここでベストアンサー

ポイント22pt

>一般的にどうなのか気になっていました

まず開発言語にPHPを選ぶところは、低予算であることが多く、

かつ比較的重要度が低いシステムの場合が多いです。

で、受注条件とかにNOTICEは駄目ですとか規定がなければ、エラーじゃないという認識です。

受注条件になくても、開発規約とかで明確に設定されてる場合を除いて、ない場合は、やっぱり

取り除こうとする人は皆無です。

CとかJavaとかで、コンパイル時にワーニングは駄目とか、ワーニングレベルはここまでで

とかそういうのと同じです。こういうのも、受注条件とかになければワーニングだらけとかも

たまにありますが、こちらは標準の設定でもそこそこのレベルに設定されてるので

目に見えるということで、注意する人はおおいでしょう。

残念ながら、PHPで開発してる人で、NOTICEエラーがあること自体を知らない人も多数いますので

質問文のようになるのは仕方がないでしょう。

id:nakamuraaaaa

そういえばCやJavaにもエラーレベルの設定がありましたね。

どの言語でもこのような問題はありますね。

確かにPHP開発者はスキルの差がものすごく激しいと感じているので、エラーレベルの設定自体理解していない人が多いというのは納得です。

2010/12/30 10:24:50
id:niwa-mikiho No.4

niwa-mikiho回答回数508ベストアンサー獲得回数382010/12/30 09:11:15

ポイント22pt

Error が出ない事はもちろんのこと、Warning すら出ないのが好ましいです。


が、動作する PHP などの環境によってはどうしても Warning が出てしまったりすることもあります。

(プラグインのバージョン違いなど、開発環境と実行環境の相違するパターンは無数にある)


そのため完全に Warning を取り除くのは大変難しい事です。

ただ、開発環境で Error や Warnings が出ない事にするのは好ましいというか、必須というか。


なので、質問者様の考えているエラーに対する認識は過剰でもなく推奨される考え方だと私は思います。

id:nakamuraaaaa

深い意図がなければ基本的に警告レベルもつぶす必要はありますね。

2010/12/30 11:36:12
  • id:b-wind
    >よく他社が作成したプログラムの改修を行うとNOTICEエラーだらけなのが多いので、一般的にどうなのか気になっていました。
    品質を気にしていないという事が一番だろうが、まともに作っても避けづらいところもある。

    PHP の問題として、バージョン間の非互換が多くてたとえば PHP4 では正当な文法であっても PHP5 では使い方が変わって NOTICE 他の警告が出ることもある。
    といってもこれはいろんなレンタルサーバーで動かすことが前提の公開されているようなアプリの話で企業が開発した物には当てはまりづらい。

    警告の類はあくまで何らかの問題の可能性があるから警告してるので、ない方がよいのは当然の話。
  • id:nakamuraaaaa
    私もPHPバージョン間での互換性を考えてあえてNoticeを外すなど深い考えがあれば許される可能性はあると思いますが、そうでなれば警告でもつぶさないといけないと思ってます。
    すこしずれますが初心者にこそエラー設定をまずE_ALLで設定して開発してもらいたいと考えています。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません