1. ホーム
  2. php

PHPの@演算子でエラーを出さないようにする

2023-09-25 17:04:49

質問

あなたの意見では、PHP でエラーや警告を処理する際に @ 演算子を使用して抑止することは有効でしょうか?

もしそうなら、どのような状況でこれを使用するのでしょうか?

コード例も歓迎します。

編集:リプライヤーへの注意 私はエラー報告をオフにしたいわけではありませんが、例えば、一般的な慣習として

@fopen($file);

にして、その後にチェックする...のですが、@を消すには、次のようにすればよいでしょう。

if (file_exists($file))
{
    fopen($file);
}
else
{
    die('File not found');
}

などとする。

問題は、他の方法では処理できないようなエラーを抑制するために @ を使用しなければならないような場所があるかどうかということです。

どのように解決するのですか?

私は、エラーを抑制する を抑制し、それを処理する . そうしないと TOCTOU 問題 (Time-of-check, time-of-use。例えば、ファイルは file_exists が真を返した後、fopen の前に削除されるかもしれません)。

しかし、私は、エラーを消すためにエラーを抑制するだけではありません。これらは可視的であるべきです。