2017-07-01 8 views
0

私は、ユースケースが@ symbol in PHPを使って式のエラーを抑制することを考えていました。PHPで@記号を使用するタイミングは?

多くの人が理由を挙げて落胆していますが、実際にはきれいなコードを書くことが実際に助けになるのかと思っていました。私はオブジェクトの検証が関数の内部と外部で行われる次の例を見てきました。関数内部で行われる検証は、コードを関数のクリーナーの外に保つことができる場合があります。 @を使用した

if (isset($object)) { 
    a($object); 
} 

function a($object) { 
} 

検証関数内:

機能外検証

a(@$object); 

function a($object) { 
    if (!isset($object)) { 
     return false; 
    } 
} 

は、@記号のための任意の良いユースケースはありますか?

I know what the @ symbol does, but not when to use it

+2

ほとんどまったく! – RiggsFolly

+0

あなたの頭でそれを使用してくださいが、デバッグは非常に難しいことを忘れないでください。あなたの例では、関数本体に 'if'を置いた方が良いですが、' empty($ var) 'は'!isset($ var) 'と等しくありません。 – ventaquil

+2

"@記号の良いユースケースはありますか?"電子メール: – Andreas

答えて

2

@は悪い言語のPHPの評判を与えるものの一つである - それはあなたが悪いのコードを書くことができます。

私は個人的に@をunlink()に使用していましたが、これはコードレビューをしても受け入れられるかもしれませんが、自分ではできません。

1

外部のAPIやエンコードされたモジュールなど、変更できないコード(またはアプリケーション)で作業しているときにスクリプトをクラッシュさせることができます(致命的なエラーが発生するなど)。

しかし、まずあなたはそのような状況を処理しなければなりません。あなた自身の例外を生成し、それを受け入れてくれるようにしなければなりません。(スクリプトのクラッシュやPHPの警告はユーザーや管理者には適切です。

それ以外はデバッグが非常に困難になるためです。

関連する問題