php 如果计数器等于 x 或 y

php if counter is equal to x or y

我想将我的 WP post 安排在页面顶部一个全角 post,然后每行 3 post。

我显示了所有内容,但我剩下的是列前后的 3 个 if 语句。我敢肯定这真的很简单,但是当我尝试使用 "if ( $counter == 1 | 4 | 7 )" 时,每个 div 都有一行。有没有更简洁的方式来写这个并获得相同的结果?

<?php if <?php if ( $counter == 1 ) : ?>: ?>

    <div class="row"><!-- .row - 1 -->

<?php elseif ( $counter == 4 ) : ?>

    <div class="row"><!-- .row  - 4-->

<?php elseif ( $counter == 7 ) : ?>

    <div class="row">   <!-- .row  - 7 -->  

<?php endif; ?> 

        <div class="col-md-4">

         <p>Content</p>

        </div>


<?php if ( $counter == 3 ) : ?>

        </div><!-- .row 3 -->

<?php elseif ( $counter == 6 ) : ?>

        </div><!-- .row 6 -->

<?php elseif ( $counter == 9 ) : ?>

        </div><!-- .row 9 -->

<?php endif; ?> 

尝试使用模数,这样您就不必为每个 3 编写条件。类似于:

if ($counter % 3 == 0) 

只要计数器是 3 的倍数,就会匹配,您可以更改数字以匹配您想要的任何条件。

php中的多个语句被写成单独的case。即

if ( $counter == 1 || $counter == 4 || $counter == 7 )

但在你的情况下,使用模运算符,即returns (除法的余数),可以简化为:

if ( $counter%3 == 1 ) {
    // Open div
}

if ( $counter%3 == 0 ) {
    // Close div
}

另一个解决方案是使用in_array(特别是如果选项是随机的并且有很多)

if (in_array($counter, [1, 4, 7]))

还要注意单身| symbol 是位运算符。在此处了解更多信息:

http://php.net/manual/en/language.operators.bitwise.php