我编写了这段代码,但我有一个问题,就是在每一行显示相同的值“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;
你必须用$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