【问题标题】:PHP while loop not ++'ing variable within if statementsPHP while 循环不是 if 语句中的 ++'ing 变量
【发布时间】:2014-08-28 17:12:57
【问题描述】:

statment我目前正在做一个项目。我在嵌套在 if 语句中时在循环中创建变量 ++ 时遇到问题。我真的不明白为什么它正在做它正在做的事情。这是我的代码。

                    <?php $i=0;
                     while ($loop->have_posts() ) : $loop->the_post(); ?>
                        <?php if(get_field('featured_game') && valid_release(get_field('release_date'))):?>
                     <div class="item <?php if($i == 0){echo 'active';}?> row carousel-<?=$i;?>">

                          // do generated html

                            <style>
                                .carousel-<?=$i;?>{
                                    // do generated css
                                }
                           </style>

                     </div>
                            <?php $i++;?>

                        <?php endif?>
                    <?php endwhile;?>
                </div>

我的结果有 轮播- 尽管循环运行,这些点都返回了 0。意味着增量没有发生。

如果我删除 if 语句,则循环按预期工作。 if 语句只是为了验证标准是否正确。我确实可以将 ++ 放在 if 语句之外,我得到相同的结果。

请解释一下我在这里缺少什么?这似乎是一个基本问题。我真的不明白为什么 $i 在满足标准并发布正确信息时不会增加。提前感谢任何付出努力的人。

【问题讨论】:

  • 很难看到混入了这么多html的代码。考虑将你的php代码和你的html代码分开。
  • 如果使用&amp;&amp; 运算符,则可以将两个if 合并为一个。 if(get_field('featured_game') &amp;&amp; valid_release(get_field('release_date')))
  • @ham-sandwich ...不,他的意思是增加 - 叹息
  • 如果没有if 语句的情况下它可以按预期工作,我会冒险猜测你的if 语句是有问题的
  • @user3791372 我清理了代码。仅显示直接受影响的内容。 if 语句检查是否为真。 valid_release() 和 get_field 只能返回 true 或 false。

标签: php wordpress while-loop carousel


【解决方案1】:

我运行了这段代码:

<?php $i = 0;
while ($i < 10) : ?>
    <?php if (true): ?>
        <?php if ($i == 0) {
            echo 'active';
        } ?>
        <?= $i; ?>
        <?php $i++; ?>
    <?php endif ?>
<?php endwhile; ?>

结果是:

active 0 1 2 3 4 5 6 7 8 9 

要么

get_field('featured_game')

valid_release(get_field('release_date'))

必须是假的。

试试

var_dump(get_field('featured_game'));
var_dump(valid_release(get_field('release_date')));

在循环内部。

【讨论】:

  • 在循环中是否返回 true。
【解决方案2】:

事实证明,它一直是正确递增的。

我的问题原来是引导轮播循环父 div 中的内容而不是看起来的实际 div。如果我禁用它,或者直接查看源代码,一切都是应该的。

猜你喜欢
  • 2013-11-01
  • 2013-08-14
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
相关资源
最近更新 更多