1

重複の可能性:
複数の条件を持つphpifステートメント

私はこのコードを持っています:

if(x==1 || x==2 || x==3 || x==4 )

とにかくそれを短くすることはありますか?例えば:

if(x==1||2||3||4 )

X = 1,2,3 OR 4の場合、ステートメントが真になるという意味ですか?

前もって感謝します。

編集:(すべての返信に感謝します、ここにいくつかの説明があります)

whileループがありますが、特定のデータベースエントリのみを呼び出したいです。私のコードは最新です

<?php while(the_repeater_field('team_members','options') && get_sub_field('member_sort') == 1 : ?>
 <div class="one_fourth">
        <img src="<?php the_sub_field('image'); ?>" alt="" />
        <p>
          <?php the_sub_field('info'); ?>
            <br />
            <a href="mailto:<?php the_sub_field('email'); ?>"><?php the_sub_field('email'); ?></a>
        </p>
 </div>
<?php endwhile; ?>

今のところ、== 1で完全に機能しますが、2、3、4も表示したいと思います。1 || 2 || 3||4を実行するためのコードをどのように配置すればよいかわかりません。

アップデート2:

さて、私は次のコードを使用しましたが、私はそれを間違った方法で行っていると推測しています。次のコードは、1に等しいレコードのみを示していますが、2、3、4に等しいレコードは示していません...ステートメントが即座にtrueになるため、whileループが1回だけ実行されているためだと思います。

  <?php while(the_repeater_field('team_members','options') && in_array(get_sub_field('member_sort'),array(1,2,3,4))): ?>
                        <div class="one_fourth">
                            <img src="<?php the_sub_field('image'); ?>" alt="" />
                            <p>
                                <?php the_sub_field('info'); ?>
                                <br />
                                <a href="mailto:<?php the_sub_field('email'); ?>"><?php the_sub_field('email'); ?></a>
                            </p>
                        </div>
                    <?php endwhile; ?>
4

4 に答える 4

5
if (in_array($x, array(1,2,3,4))

あるいは:

if (in_array($x, range(1, 4)))

わかりました、この質問はかなり進化しましたが、問題はすべての値をループしたいが、特定の条件でのみ処理したいということだと思います。このステートメントを使用してcontinue、現在の反復を中止し、すぐに次の反復に進むことができます。

<?php while (the_repeater_field('team_members','options')) : ?>
    <?php if (!in_array(get_sub_field('member_sort'), array(1,2,3,4))) continue; ?>

    ... do stuff

 <?php endwhile; ?>
于 2012-05-29T01:04:15.847 に答える
1

それはあなたが持っている数、および他の条件があるかどうかによって異なりますが、次のいずれかswitchです。

switch(x) {
    case 1:
    case 2:
    case 3:
    case 4:
        break;
    default:
        // Do stuff
}

または配列、特に多くのアイテムの場合:

if(!in_array(x, array(1, 2, 3, 4)) {
    // Do stuff
}
于 2012-05-29T01:04:57.690 に答える
1

PHP 5.4+ を使用している場合は、次のようにすることができます。

if (in_array($x, [1,2,3,4]))

それ以外の場合は、次のとおりです。

if (in_array($x, array(1,2,3,4)))
于 2012-05-29T01:05:07.587 に答える
0

道はない。配列を使用する場合のみ。

于 2012-05-29T05:07:36.790 に答える