2014-08-28 64 views
-2

statmentI我目前正在開發一個項目。我在嵌套在if語句中時在循環中創建變量++時遇到了問題。我真的不明白爲什麼它正在做它正在做的事情。這是我的代碼。PHP while循環不在++語句中的變量

    <?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語句之外,我可以得到相同的結果。

請問一些請解釋我在這裏失蹤了什麼?這似乎是這樣一個基本問題。我真的不明白爲什麼當我符合標準併發布正確的信息時,我不會增加。預先感謝任何願意付出努力的人。

+1

很難看到帶有這麼多html的代碼。考慮分開你的php代碼和你的html代碼。 – user3791372 2014-08-28 17:23:20

+2

如果使用'&&'操作符,兩個'if's可以合併成一個。 '如果(get_field('featured_game')&& valid_release(get_field('release_date')))' – user3791372 2014-08-28 17:25:02

+0

@ ham-sandwich ...不,他意味着遞增 - 嘆氣 – Sugar 2014-08-28 17:26:20

回答

0

原來,它一直在適當增加。

我的問題原來是bootstraps carousel循環父div中的內容,而不是它看起來的實際div。如果我禁用它,或者直接看源代碼,那麼它應該是一切。

+0

http://stackoverflow.com/questions/25404148/how-to-use-multiple-bootstrap-collapse-elements-dynamically-in-php/25404284#25404284 – andrew 2014-08-28 18:01:58

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

內循環。

+0

在循環中做了這樣的返回true。 – user1452407 2014-08-28 18:03:27