【问题标题】:php if counter is equal to x or yphp 如果计数器等于 x 或 y
【发布时间】:2017-10-15 15:37:18
【问题描述】:

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

我展示了所有内容,但我只剩下 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; ?> 

【问题讨论】:

  • if ( $counter == 1 || $counter == 4 || $counter == 7 )
  • 您也许可以使用模数运算符,if ($counter % 3 == 1) 用于第一个,然后等于 0。
  • 希望第一行是复制/粘贴错误,否则您需要更正它

标签: php if-statement counter


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢迈克尔,这正是我想要的。
【解决方案2】:

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

if ($counter % 3 == 0) 

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

【讨论】:

  • 我试过这个,但它破坏了布局。我想是因为我上面已经有一个全宽的列了。
【解决方案3】:

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

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

但在您的情况下,使用返回(除法余数)的模运算符,它可以简化为:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2019-08-18
    • 2023-03-03
    相关资源
    最近更新 更多