用于循环混淆的PHP

用于循环混淆的PHP,php,loops,for-loop,Php,Loops,For Loop,我刚接触编码领域,这是我第一次了解循环。我在一个网站上看到了一个例子,结果让我完全困惑 /* Sample Code 1 */ $counter=0 $start=1 for($start;$start<11;start++) { $counter=$counter+1; print $counter; } /*示例代码1*/ $counter=0 $start=1 对于($start;$start启动循环时,$start小于11。然后在迭代结束时递增。然后,如果循环已达

我刚接触编码领域,这是我第一次了解循环。我在一个网站上看到了一个例子,结果让我完全困惑

/* Sample Code 1 */

$counter=0
$start=1

for($start;$start<11;start++) {
   $counter=$counter+1;
   print $counter;
}
/*示例代码1*/
$counter=0
$start=1

对于($start;$start启动循环时,
$start
小于11。然后在迭代结束时递增。然后,如果循环已达到11,则循环结束


也就是说,如果
$start
为10,则它将进入循环。它达到11,因此
for
语句退出循环。循环结束时为11。

以下是我编写的描述

for (//declare loop
$start = 0; //declare starting value and the value to store it in
$start < 10; // Each time it comes through, if $start is under 10, do the loop. if it is 10, exit
$start++ //Increment $start by 1
)
(//声明循环)的

$start=0;//声明起始值和存储该值的值
$start<10;//每次通过时,如果$start小于10,则执行循环。如果小于10,则退出
$start++//按1递增$start
)

第二个示例结果中似乎缺少“21”。
这可能是您感到困惑的原因吗?

我将从上面的所有示例中给您一个解释:

示例代码1

$counter=0;
$start=1;
这是一个变量声明,用于声明和初始化两个变量

for($start;$start<11;start++) {
    $counter=$counter+1;
说明

$counter=11;
$start=1;
  • 如您所见,示例#1从1开始循环(取自
    $start=1
    ),只要$start小于11,就执行
    循环。为了防止它永远循环,该代码添加了
    $start++
    ,这将转换为
    $start=$start+1
    。这样,对于每个循环,
    $start
    都由1添加
  • 循环条件
    必须返回
    true
    才能运行循环。如果返回
    false
    ,循环将退出
现在,让我们检查该循环中的内容:

$counter=$counter+1;
print $counter;
您可以在那里看到:
$counter=$counter+1
。这意味着,您为每个循环增加$counter一个,并打印结果
$counter

让我们来分解这个过程(我们以
1
开始循环,因为它是由
$start=1
定义的):

循环结构:

for({loop initialization}; {loop condition}; {per loop process}){
    //the rest of loop process
}
for($start;$start<11;start++) {
    $counter=$counter+1;

对于($start;$start请分析您的代码。。您与$start和$counter变量之间存在明显的混淆。请使用var_dump查看您的变量所经历的过程

记住,它在逻辑上与
相同($start您将
计数器
开始
相混淆。SLaks所说的。
$start
必须小于11,并且在循环结束时,它必须小于11,即使您正在递增
$counter
$start
不是一个特殊变量或任何东西,但它被用作循环中的条件的唯一原因是您在(…)的
中以这种方式指定了它吗
line.您确定示例代码2中的结果,还是仅仅是一个输入错误。它应该有21作为最后一个值。并且$startSorry用于输入错误。有一个21,但这不会引起我的混淆对不起,输入错误。有一个21,但这不会引起我的混淆。正如大家所说的,您可能只是将迭代器与计数器。除非您能详细说明导致混淆的点。感谢沉默。您的示例帮助澄清了它。本质上是for语句中的声明,例如for(循环初始化、循环条件、循环增量)定义循环的长度,例如1..10。非常感谢。更有意义。现在,如果我更改了逻辑,请纠正我对($start;$startNo)的$counter=0$start=1的错误$counter=0$start=1。使用该代码,您将执行无限循环。因为,$start<11将始终返回
true
loop #   $start  ($start < 11?)  $counter ($counter = $counter + 1)
1        1       Y               1
2        2       Y               2
3        3       Y               3
4        4       Y               4
5        5       Y               5
6        6       Y               6
7        7       Y               7
8        8       Y               8
9        9       Y               9
10       10      Y               10
11       11      N               11
$counter=11;
$start=1;
for($start;$start<11;start++) {
    $counter=$counter+1;
loop #   $start  ($start < 11?)  $counter ($counter = $counter + 1)
1        1       Y               12
2        2       Y               13
3        3       Y               14
4        4       Y               15
5        5       Y               16
6        6       Y               17
7        7       Y               18
8        8       Y               19
9        9       Y               20
10       10      Y               21
11       11      N               22