私はかなり長い間通知を何の問題もなく抑制してきましたが、私は正しいことをしているのだろうかと思い始めています。それらを単に抑制するべきではないという論理的な理由を見つけることができないようですが、他の人々は、error_reportingを使用してそれらを抑制することは恐ろしいことだと考えているようですが、なぜですか?
私が見つけた答えに最も近いものはこの質問にありましたが、それは私が探している答えからはまだ遠いです。PHPが生成するすべての通知を非表示にすることには、ある種の予期しない欠点がありますか?たとえば、エラーが発生したためにPOST呼び出しからフォームに変数を含めるには、次のように使用します。
<?= $_POST['variable'] ?>
これにより、PHP通知が生成されます。その通知を修正するには、次のようなものを使用できます。
<?= isset($_POST['variable']) ? $_POST['variable'] : '' ?>
しかし、これは本当に必要ですか?私のコードは、変数が存在するかどうかに関係なく、変数をエコーしてPHP通知を作成するのではなく、これを行うことで実際にメリットがありますか?通知を無視できることは、PHPを使用する利点であるように思われます。これにより、変数が定義されているかどうかを心配する必要がなくなります。特に、このような重要ではない例の場合はそうです。
また、使用方法に応じて変数の型/キャストを自動的に変更するPHPの機能を利用しており、次のようなコードスニペットがよく見られます。
for ($i = 0; $i < $limit; $i++) $results[] = $i; // Example
ここで$results
、以前は定義されていませんが、新しいアイテムを配列として追加しようとすると、配列に変わります。配列に結果が追加されず、何らかの理由でその情報を保存するかJSONに変換する必要がある場合、その特定の変数は定義されないため、追加の帯域幅を節約できます。分。
$data = stdClass; // For reference, in my case this would be defined before this code
$data->results = array();
$limit = 0;
for ($i = 0; $i < $limit; $i++) $data->results[] = $i;
print json_encode($data);
// {"results":[]}
対
$data = stdClass; // For reference
$limit = 0;
for ($i = 0; $i < $limit; $i++) $data->results[] = $i;
print json_encode($data);
// []
もう一度質問します。通知エラーを単に抑制するのではなく、修正することで、もしあれば、どのような本当のメリットが得られますか?それは私のコードにどのように害を及ぼす可能性がありますか?