简化使用计数器的php函数

时间:2014-04-20 20:39:43

标签: php loops counter simplify

我有这个函数,它为循环的每个项目提供一个特定的数字。

<?php $counter =0; ?>
<?php while( have_rows('profs_associes') ): the_row(); ?>
  <?php
    ++$counter; 
    if($counter == 1) {$imageclass = 'data-contentid="1"';}
    if($counter == 2) {$imageclass = 'data-contentid="2"';}
    if($counter == 3) {$imageclass = 'data-contentid="3"';}
    if($counter == 4) {$imageclass = 'data-contentid="4"';}
    if($counter == 5) {$imageclass = 'data-contentid="5"';}
    if($counter == 6) {$imageclass = 'data-contentid="6"';}
    if($counter == 7) {$imageclass = 'data-contentid="7"';}
    if($counter == 8) {$imageclass = 'data-contentid="8"';}
    if($counter == 9) {$imageclass = 'data-contentid="9"';}
    if($counter == 10) {$imageclass = 'data-contentid="10"';}
?>
<div class="img-row" <?php echo $imageclass; ?>>

但似乎可以通过简单地编写一个函数来简化它(我必须做很多事情),该函数将项目的数量设置为所述项目的“id”。 有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

++$counter; 
$imageclass = 'data-contentid="'.$counter.'"';

我相信这就是你想要做的。 .运算符concatenates字符串$counter的值。

答案 1 :(得分:0)

只需将计数器的值分配到相关位置:

<?php while( have_rows('profs_associes') ): the_row(); ?>
  <?php
    ++$counter; 
    $imageclass = 'data-contentid="'.$counter.'"';

答案 2 :(得分:0)

你有很多开放和关闭的php标签,你不需要那样做(实际上)。

<?php
$counter =0;
while( have_rows('profs_associes') ): the_row();// Not really sure what's going on here
    ++$counter; 
    $imageclass = 'data-contentid="'.$counter.'"';
    echo '<div class="img-row" '.$imageclass.'>':
}
?>

您可以进一步减少:

<?php
$counter =0;
while( have_rows('profs_associes') ): the_row(); 
    echo '<div class="img-row" data-contentid="'.(++$counter).'">':
}
?>

如果你只想循环10次,我们有for():

<?php
for($counter=1; $count<=10; $counter++){
    echo '<div class="img-row" data-contentid="'.$counter.'">':
}
?>