2016-06-26 4 views
0

私はこのようなコードを持っている:if文ブロックからどのように飛び出すことができますか?

one three 

私はそれをどのように操作を行うことができます。

if (true) { 
    echo 'one '; 
    /* I need to jump out of this block */ 
    echo 'two '; 
} 
echo 'three '; 

そしてここでは、結果が期待されますか?

+5

スタックオーバーフローの他の箇所で次の質問が参考になります:1)http://stackoverflow.com/questions/4545769/php-exit- from-if-block; 2)http://stackoverflow.com/questions/7468836/anyway-to-break-if-statement-in-php –

+0

私は単一のユースケースを考えることはできません。役に立つ例がありますか?私はちょうど興味がある。 – AbcAeffchen

答えて

2
do { 
    if (true) { 
    echo 'one '; 
    break; 
    echo 'two '; 
    } 
} while(0); 
echo 'three '; 

だけbreak関数を使用します。 多くの場合、if-elseステートメントでいっぱいになった深いネストを防ぐことができます。

+0

'break'ブロック内で' break'が動作しません。 –

+0

@SunnyPatelはそれを修正した – user31415

+1

母、それはそれを行う方法の一つです。しかし、もう一度、なぜ「エコー」が2つのときにすべてを持っているのですか?それは管理するためのオーバーヘッドです! :P –

0

ブロックifから脱出することはできません。それ以外の場合は、除外したいと思う理由があります。それ以外の場合は、echo twoを削除してください。その場合、コードの残りの部分を別の条件で囲んで、必要なときにのみ実行するようにしてください。

+0

'goto'演算子はどうですか? – stack

+1

@stack私はあなた自身の質問にちょうど答えたと信じています。 <?php if(true){ echo 'one'; goto end; echo 'two'; } end: echo 'three'; – MrSaints

+1

はい、それはオプションですが、私の指摘は、何らかの種類の条件に基づいていつもそうしているということです。条件が解決されると、別のif文が必要になります。 – billynoah

1

ifの文を追加することもできます。 ステートメントを使用すると、for,whileおよびdo-whileループからのみエスケープできます。

if (true) { 
    echo 'one '; 
    if (false) { 
     echo 'two '; 
    } 
} 
echo 'three '; 

gotoのステートメントは一般的に悪い習慣です。

XKCD

+0

誰がgotoステートメントを使用すると言ったのですか? – user31415

関連する問題