どのような場合にエラーを抑制するために「@」(犬)を使用するのが正当化されるのか疑問に思います。 ...)
エラー表示を克服するにはいくつかの方法があります。 例:
1.演算子「@」:
$ a = @(57/0);
この場合、ゼロチェックによる除算をバイパスします。 遅延コーダーの簡単な修正。 この簡単な解決策は少し遅くなり、さらにコードのデバッグが複雑になることに注意してください。
2. try ... catchステートメントでキャッチ
try {エラーが発生する可能性のあるステートメント} catch(例外$ e){エラー応答}
3.目的のアラートレベルを設定します。
変数が初期化されていない(存在しない)場合、多くの場合、目的のerror_reportingおよびdisplay_errorsをゼロに設定し、チェックに煩わされません。
$ b + =(int)$ _ GET ['missing variable'];
代わりに:
if(isset($ _ GET ['variable'])){
$ b + =(int)$ _ GET ['変数']);
}
「@」の使用はプログラマーの無能さを示していると思いますか? または、この演算子(fopen、mysql_connect ...)を使用することが正当化される場合もありますか?
また、配列内のインデックスをチェックするためによく使用する単純な関数の例を示します。 要素が存在する場合、関数によって返されます。
関数chk($配列、$ i){
isset($配列[$ i])を返しますか? $配列[$ i]:null;
}
次のようになります。
if($ var =(int)chk($ _ GET、 'index')){
$ b + = $ var
}
そして、同時に配列に渡された変数の存在を確認できます:
if(in_array($ var = chk($ _ GET、 'index')、array( 'hello'、 'world'))){
...変数$ varは空ではなく、配列に存在しています...
}
誰かが便利になるとうれしいです: