Hy给大家!请原谅我的无知,我是php的新手.
我很难理解为什么php代码会以这种方式运行.代码正在运行,但我对于为什么回显这些值非常无能为力.
(代码已经过简化以便解释,但它通常会根据自定义的列数填充和格式化表格)
问题***(见代码)
为什么变量$cell回波(参见:???????问题?????):1 2 3 4 5 6 7?我期待0 1 2 3 4 5 6 //因为我认为它的起点是$ cell = 0,正如在开始时分配的那样.唯一合理的理由是它从$ cell + = $ i(来自for循环)继承了它的值,但是当大小写为$ col = 2时,第一个语句是不是完全跳过而只执行了else语句?
<?php
for ($i=1; $i <= 7 ; $i++) {
$cell = 0;
echo "<tr>";
for ($col=1; $col <= 2; $col++) {
echo "<td>" ;
if ($col == 1) {
echo $cell; // echoes: 0 0 0 0 0 0 0 ----> because $cell = 0
$cell +=$i;
echo $cell; // echoes: 1 2 3 4 5 6 7 ----> because of $cell +=$i;
} else {
echo $cell ; // echoes: 1 2 3 4 5 6 7 ?????? QUESTION ?????
$cell +=7;
echo $cell; // echoes: 8 9 10 11 12 13 14
}
echo "</td>";
}
echo "</tr>";
}
?>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
在内for循环的第一次迭代中,当然$col==1后$cell增加1.当$col不是1(2在这种情况下唯一的其他可能值)时,那么你已经增加了$cellby 的值1,因此它停止了0.
所以你有了:
i = 1 | $cell = 0 | $col = 1 // $cell +=$i; => $cell += 1; => $cell = 1;
i = 1 | $cell = 1 | $col = 2 // $cell += 7; => $cell = 8;
i = 2 | $cell = 0 | $col = 1 // $cell +=$i; => $cell += 2; => $cell = 2;
i = 2 | $cell = 2 | $col = 2 // $cell += 7; => $cell = 9;
// etc...
Run Code Online (Sandbox Code Playgroud)