2017-02-09 8 views
1

私は、このPHPの条件文のようなものを簡単に/より良い方法でコーディングする方法を理解しようとしています。このPHPの条件文を簡略化するには?

<?php if (count($foo_bar) > 1) : ?> 

    <div class="myDiv1"> 
     Hello! 
    </div> 

<?php endif; ?> 

<?php if (count($foo_bar) == 1) : ?> 

    <div class="myDiv2"> 
     Goodbye! 
    </div> 

<?php endif; ?> 

例を探して、それが良いかもしれ理由として説明。ありがとう!

+1

ネストされた3進数。トリッキーだけど邪悪です。 –

+1

@KhorneHoly CRが喜んで作業コードをレビューするということは間違いありませんが、これは例のコードなので完全にオフトピックになります。 CRは実際の実装だけを見直します。 – Kaz

+0

@Kazこの追加情報をありがとう、私はそこにアクティブなユーザーではないので、私はそこに正確に話題になっているものに慣れていない。 – KhorneHoly

答えて

1

は、簡単に言えば、この特定の状況であなたがすべきカウント機能に一度だけ、それは簡単なif else

<?php if (count($foo_bar) > 1) : ?> 

    <div class="myDiv1"> 
     Hello! 
    </div> 

<?php else: ?> 

    <div class="myDiv2"> 
     Goodbye! 
    </div> 

<?php endif; ?> 
+0

悪魔の主張者ですが、count($ foo_bar)が0の場合はどうなりますか? –

+0

まあ、私は疑問に思っていましたが、既存のコードとして、私のカテーテルを参照してください(この特定の状況では_)その状況に対処するものはありません – RiggsFolly

+0

公正な点、私はちょうどその行動が "何もしない"何もせずに保存する。私が悪魔の提唱者と言ったように、とにかく価値のある値で$ foo_barが設定されていなければ、どこで使うのが本当にわかりません –

2
<?php 
    $class = 'myDiv2'; 
    $msg = 'GoodBye!'; 
    if (count($foo_bar) > 1) { 
     $class = 'myDiv1'; 
     $msg = 'Hello!'; 
    } 
?> 

    <div class="<?php echo $class; ?>"> 
    <?php echo $msg; ?> 
    </div> 
1

以下のようにelseifを使用してみてください。 2つのステートメントよりも少しコンパクトです。

<?php if (count($foo_bar) == 1) : ?> 
<div class="myDiv2"> 
    Goodbye! 
</div> 
<?php  elseif(count($foo_bar) > 1): ?> 
<div class="myDiv1"> 
    Hello! 
</div> 
<?php  endif; ?> 
+0

の書式が正しくない場合、2番目のコードではなくelseを実行するだけで、すべてのコードが表示されるわけではありません。ナインシーの答えは良いですが、私のところには繰り返し要素が多すぎます –

1

まずで実現することができるかのように秒を必要といけません。 次に、重複したHTMLブロックを減らします。

+0

DIVで使われるクラスは良いか悪いかを除いて異なります質問で! – RiggsFolly

+0

これは@Naincyの回答によく似ています – RiggsFolly

関連する問題