PHP while循环而不是++语句中的变量

时间:2014-08-28 17:12:58

标签: php wordpress while-loop carousel

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>

我的结果有 carousel-  尽管循环运行,这些点都返回0。意思是没有发生任何事情。

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

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

2 个答案:

答案 0 :(得分:2)

我运行了这段代码:

<?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')));

在循环中。

答案 1 :(得分:0)

原来,它一直在正常增加。

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