2013-07-03 11 views
16

私は、スイッチケースフォールスルーが最善の選択肢である状況に自分自身を見つけました。これは私が意味する:意図的なスイッチフォールスルーを文書化する最良の方法は何ですか?

switch($bar) 
{ 
    case 0: 
     // do something 
    case 1: 
     // do more 
     break; 
    //more cases 
} 

現在、私のIDE(phpStorm)はフォールスルーに関する警告を投げています。

このようなフォールスルーを文書化するためにphpDocで受け入れられる方法はありますか?

n.b.あなたの何人かは間違いなくこれをしないと言っていますが、私はこのdefinition of evilを購読しています。これは確かに「最も悪い選択肢」です。

+2

私はいつもコロンの右側のコメントに '//Deliberate fallthrough'を入れていますが、これはプログラマのためのものです。私はあなたがIDEの警告を無効にすることができるとは思わない – GordonM

+0

警告を取り除く唯一の方法は警告を設定することです、そのphpstormが印刷する、この場合はfall-throughsの警告を削除します。しかし、それは実際に生産的ではないかもしれません。おそらく、別のスクリプトでは、休憩を忘れてしまい、そのために警告が使用されるからです。私は警告を無視するだけでそれを処理し、余分なコメントや、それが意図的に書かれていることを明らかにするためにそれに匹敵するものを追加することがあります。 – luk2302

+0

@ GordonM私はこれを既に行っていますが、この振る舞いを文書化するより正式な方法があるのか​​どうかは不思議です。 –

答えて

35

質問に明示的にphpDocについて質問しますが、ここにはPHPStormのIDE固有の解決策があります。 JavaScriptが

、switch文の上

//noinspection FallthroughInSwitchStatementJS 

コメント。 PHPの場合

、問題のcase文の上

/** @noinspection PhpMissingBreakStatementInspection */ 

コメント。

+0

素敵!それは私が望んでいたものです。ありがとう。 –

+3

PHPStorm(おそらく他のJetBrains IDEでも可能です)では、Alt + Enterキーを押して問題のコードの上にカーソルを置き、[Suppress for statement]を選択することもできます。検査を無効にするための適切なコメントは、自動的に正しい位置に挿入されます。 – rob74

+1

これは役に立ちますが、PhpDocが@fallthroughのようなタグを持つことができるのであればなおさらです。PHPの場合は多分です – donquixote

関連する問題