用于循环混淆的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