[PHP-users 9616] Re: ファイルの存在確認をしたい

Yasuo Ohgaki php-users@php.gr.jp
Thu, 29 Aug 2002 08:13:39 +0900


大垣です。

MAO wrote:
> MAOです。
> 
> 
>>「@」マークをgetimagesizeの前に入れればエラーは出ないと思います。
>>
>>  ->  @getimagesize
> 
> この方法で解決いたしました。
> @でエラーを無視するんですね。
> 

エラー制御オペレータを使うと幾つか問題があります。

1. 必要なエラーも隠してしまいバグの発見が難しくなる
2. User defiend error handlerを作った場合、
安定したエラー処理がほとんど不可能。

2.の理由はエラーハンドラーを定義して@オペレータを
使うと理由が解ります。PHPのエラーメッセージは結構
頻繁に変わっている事もあり、@でエラーを隠すと面倒
です。

という事で、私は@はできるだけ利用しない事をお進め
します。たぶん、本の著者さんも同じ理由で解説していな
いのでは? # そう願いたい :)

再利用するライブラリには使わない方が良いですが、
絶対使ってはならない、という物でもないのでトレードオフ
が受け入れられるなら@を使っても問題ないと思います。

無いとは思いますが、もし@を使わないとどうしようもない
モジュール関数がある場合はレポートして頂ければ直します。

# 蛇足ですが、もしWriting Solid PHP Codeという本
# あればE_ALLでコーディングしましょう、と書いてあると
# 思います。E_ALLでエラーが発生しないように開発する
# 事は安全なWebアプリケーションを作る上で非常に重要です。

--
Yasuo Ohgaki