案例中每行的计数器

问题描述 投票:-1回答:1

我编写了这段代码,但我有一个问题,就是在每一行显示相同的值“1”。我会为该行的定位或编号计数器

Position
1
2
3
4

这里的代码:我需要改变什么或者我做错了什么?

case "18": 
                     $html.='<td class="product_tax_name product_list_content product_list_content_'.($j+1)
                .' product_list_col_'.($j+1).'">';

                for($i=1; $i<=1; $i=$i+1)
                        {
                   $html.= $i;
                   $i++;
                    }
                $html.='</td>';

                break; 


        }
        return $html;
php prestashop counter
1个回答
0
投票

你必须用$j增加++$j

 ++$j;

 $html.='<td class="product_tax_name product_list_content product_list_content_'.$j.' product_list_col_'.$j.'">';

例如,目的

$j = 0;

foreach(range(1,5) as $blah){
   echo (++$j)."\n"; //you can ignore the line return "\n"
}

请参阅示例here

输出:

1
2
3
4
5

注意 - 为了在没有警告消息的情况下递增,您必须首先定义,就像我在上面的示例中所做的那样。

另一种方法是:

$j += 1;

这跟说的一样

$j = $j+1;

问题的关键在于你没有分配任何东西,你只需要加上$j的值,添加1并输出它而不改变$j的值。我上面展示的是同时进行变量赋值和修改的方法。

因此,如果$j等于4,你每次都会得到5。您要么将其设置为0,要么未定义它。

我们也有这种混乱可以应对

for($i=1; $i<=1; $i=$i+1){
  $html.= $i;
  $i++;
}

这循环一次,你最后与$i=3。这也是不好的形式。

for($i=1; $i<=1; ++$i){
  $html.= $i;
}
//outputs 1

现在它仍然循环1时间,但你以$i=2结束

UPDATE

如果你说的话,上面的for循环是你的意思

$ html。=“放在柜台(1,2,3,4,5)”

然后好吧,你只是循环一次,所以你只会得到一个数字。试试这个,

for($i=1; $i<=10; ++$i){
  $html.= $i;
}
//outputs 12345678910 as there is no separator here.

甚至更好

$html .= implode(",", range(1,10));
 //Outputs: 1,2,3,4,5,6,7,8,10

所以把它们放在一起(字面意思)

  $html.= "put here the counter(".implode(",", range(1,4)).")";

至于“范围”是什么,重要的是什么。那么告诉我这意味着什么,我会告诉你:

我会为该行的定位或编号计数器

位置1 2 3 4

© www.soinside.com 2019 - 2024. All rights reserved.