Php 逗号在for循环的第一个参数中起什么作用?
当一个参数的第一个参数中有逗号时,它意味着什么 例如:Php 逗号在for循环的第一个参数中起什么作用?,php,for-loop,Php,For Loop,当一个参数的第一个参数中有逗号时,它意味着什么 例如: for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) { // } for($j=0,$n2=sizeof($quotes[$i]['methods']);$j循环的第一部分中的逗号只是分隔变量声明 本质上,它只是声明了两个变量$j=0和$n2=sizeof($quotes[$i]['methods']),但是在循环构造函数中,而不是在循环构造函数之前。PH
for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
//
}
for($j=0,$n2=sizeof($quotes[$i]['methods']);$j循环的第一部分中的逗号只是分隔变量声明
本质上,它只是声明了两个变量$j=0
和$n2=sizeof($quotes[$i]['methods'])
,但是在循环构造函数中,而不是在循环构造函数之前。PHP
继承了类似于C++
的语法
类似于C++
的语言通常对代码块或控制结构具有范围可见性,例如:
#include <iostream>
using namespace std;
int main() {
int a = 0; // main scope;
int b = 5; // main scope;
if(a != b){
int c = a + b; // if scope;
// a, b, c visible.
}
// a and b visible, but c - not visible.
for(int i = 10; i < 20; i++){
// for-loop scope:
// i, a and b visible
cout << "i: " << i << endl;
}
// a and b visible, but i - not visible.
return 0;
}
相当于
<?php
header('Content-Type: text/plain');
$j = 10;
for($i = 0; $i < 10; $i++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
$j += 2;
}
?>
每个节可能包含表达式,但不能包含其他控制结构
1)初始化\u部分:
应该包含要在循环开始前执行的表达式。
如果有多个单独的表达式,则应使用逗号分隔它们
在任何循环迭代之前执行
for($i = 0, $j = 1; $i < 10; $i++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
2)条件部分:
应包含检查循环是否继续或停止的表达式。如果有多个单独的操作,则应使用逗号分隔
在每次循环迭代之前执行
for($i = 1, $j = 0; $i++, $j < 10; $j++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
for($i = 0; $i < 10; $i++, $i *= 2){
echo $i, PHP_EOL;
}
for
循环的此部分中的逗号会导致忽略此部分之前的所有表达式,最后一个表达式除外(如所述)
不管$i<1
在第二次迭代中为false
。它可以用作默认的预执行语句
3)执行后部分:
应包含执行循环体操作后要执行的表达式。如果有多个单独的操作,则应使用逗号分隔
对于
-循环迭代,在每次后执行
for($i = 1, $j = 0; $i++, $j < 10; $j++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
for($i = 0; $i < 10; $i++, $i *= 2){
echo $i, PHP_EOL;
}
另外,对于
,每个循环部分可能都是空的(不做任何事情),保留分号代码>分隔符:
for(;;){
// infinite loop
}
它声明了多个变量。在这种情况下,
$j
和$n2
,
甚至可以在条件部分中使用,尽管在实际代码中很少会发现这种情况。@icktoofay,
通常被&
替换。是的,你是对的。,
做了一件与和&
完全不同的事情;它们不能互换,
执行一些您很少希望执行的操作:它计算第一个操作数,丢弃结果,然后计算后一个操作数。当你只关心结果时,比如在一个条件下,它很少有用。它只有在用于其副作用时才有用,如在作业中。当没有副作用时,例如在用于条件的纯表达式中,,
很少使用:我只看到它用于模糊处理。尽管如此,它仍然可以使用,并且不能与&&
@icktoofay互换,应该提到它。我从来不知道。谢谢我会很快更新答案。谢谢你非常详尽的回答!
for($i = 0, $j = 1; $i < 1, $j < 5; $i++, $j++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
0 + 1 = 1
1 + 2 = 3
2 + 3 = 5
3 + 4 = 7
for($i = 0; $i < 10; $i++, $i *= 2){
echo $i, PHP_EOL;
}
0
2
6
for(;;){
// infinite loop
}