2012-05-19 10 views
5

私は、このような制御構造を有する:SWITCH opreatorの比較ケースを厳密にする方法はありますか?

switch ($var) { 
    case TRUE: 
    break; 

    case FALSE: 
    break; 

    case NULL: 
    break; 
} 

をそして、私は、PHPマニュアルに記載されていて、私のNULL場合があるために呼び出されることはありません:/ケースを切り替える

緩い比較ですを行います。

は私がIFの代わりSWITCHを使用することができます知っているが、私は、私は私のSWITCHのあらゆるCASEで、すでにいくつかのIF's持ってしたくありません。

何らかの形で書き直す方法はありますかSWITCHか、いくつかのトリックを使用して値を厳密に比較する方法はありますか?

答えて

7

はい、あなたは

switch (true) { 
    case $var === TRUE: 
    break; 

    case $var === FALSE: 
    break; 

    case $var === NULL: 
    break; 
} 
+0

優れたソリューションを行うことができ、ありがとうございました。しかし、それは毎回すべてのケースを評価するPHPを作るのですか? – Green

+2

@Green各switch文とまったく同じです。つまり、trueと評価される最初のcaseが入力され、最初のbreak文で実行が停止します –

0

これは、スイッチの構造が動作する方法です。それについてはあまりできません。

私が見る唯一の方法は、PHPのソースコードを変更して再コンパイルすることです。しかし、その後、あなたはもはや「PHP」を実行することはないだろう(とあなたのコードは、「PHP」以外の何かに依存しています)

関連する問題