• ベストアンサー

関数の前についている「@」の意味は?

PHP初心者です、サンプルが掲載されているサイトや リファレンスサイトを見ているのですが fopenという関数で、2パターン記述している場合があるのですが この違いは何でしょうか? 例) $fp = @fopen(~ $fp = fopen(~ @をつけて検索をしても無効になるみたいで検索できませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

実行に失敗してもそのまま処理を続ける場合に@を使います。 @fopenとすると、ファイルのオープンに失敗しても処理を続けます。通常は、その後にor exitなどとして失敗した場合の処理を用意しておくことが多いでしょう。ファイルアクセスなどはファイルが見つからないなど実行に失敗することが多いので、そうなっても処理を続けて行うようにしてあるのだと思います。

noname#50030
質問者

お礼

ずばりその通りの回答ありがとうございました。 助かります。

その他の回答 (1)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

たとえば簡単なところで <?php @count(); print "<br />-------<br />"; count(); ?> これを実行してみてください すぐに分かりますよ Warningを返さないで無視するって事です 質問中のfopenの場合。一般的にはファイルオープン出来ない場合に別な処理を用意しておけば済む話なんですが、オープン失敗したときにWarning画面に出してしまう場合など、処理がとまってしまう恐れもありますので@をつけてWarningを無視させているんだと思います。

noname#50030
質問者

お礼

的確な回答ありがとうございました。 サンプルまでつけて頂いて助かります。

関連するQ&A