ええ、その文法は通常、「偶発的な割り当て」として最も適切なIDEによってフラグされます(=
または==
を意味するかどうかは不明です)。
if (($message_array = @unserialize($e->getMessage()))) {
}
また
、可読性と保守性のために、私はそこにいくつかのことを示唆している:大半は、(それはあなたが結果ではなく、テストをしたい見かけますので)エラーを黙らせる()
でそれをラップすることができます。
まず、中括弧を使用します。それはあなたがそれらを使用できないようにする特別なケースだから、私は個人的にいつもそれらを使うより良い形だと思って、何が意味されたのかがはっきりしていると思う。
第2に、if
節の外のすべてのアジンメントを実行します。それはあなたが意味していたことを一目でわかりやすく明快に伝えます。それはあまりうまく見えません。
$message_array = @unserialize($e->getMessage());
if ($message_array) {
...
}
第3に、@
演算子を避けることをお勧めします。私にはコードロットの兆候です。エラーを適切に処理するよりも使いやすく簡単なことはわかっていますが、それは単なる人生をより困難にするショートカットだと思います。あなたはいくつかの方法でそれを避けることができます。まず、文字列を確認してからunserialize
に渡すことができます。それが空でないこと、文字列などであることを確認してください。次に、error handler
をインストールして、PHPエラー(例外)に例外をスローします。そうすれば、unserialize
コールはtry {} catch(){}
ブロックにラップされます。スローされたエラーがあなたが思っているものだと信じるのではなく、実際にエラーを調べることができるので、それはより良いです...
@でのエラーを抑止するのは常に悪いです! – Shoe