for ループの最初のパラメーターにカンマがあるとはどういう意味ですか?
例えば:
for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
//
}
ループの最初のセクションのコンマは、変数宣言を区切るだけです。
基本的には、2 つの変数$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;
}
C++
PHP にはそのような機能はありませんが、構文規則 (およびほとんどのコード規則)を継承しています。
<?php
header('Content-Type: text/plain');
for($i = 0, $j = 10; $i < 10; $i++, $j += 2){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
?>
に等しい
<?php
header('Content-Type: text/plain');
$j = 10;
for($i = 0; $i < 10; $i++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
$j += 2;
}
?>
変数$i
と-loop の$j
後はどこでもアクセスできますが、ヘッダー セクションfor
でそれらを宣言することは、明確にするために行われる可能性があります (一部の人々は、これらの変数はこのサイクルで確実に使用されると言っています)。また、それはより短いです。for-loop
注:,
-loopのすべてのヘッダー セクションにも使用for
できます。
UPDv1:
for
-ループ宣言:
for(initialization_section; condition_section; post_execution_section){
// actions
}
各セクションには式を含めることができますが、他の制御構造を含めることはできません。
1) 初期化セクション:
ループが開始する前に実行する式を含める必要があります。個別の式が複数ある場合は、コンマで区切る必要があります,
。
-loop反復の前に実行します。for
for($i = 0, $j = 1; $i < 10; $i++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
結果:
0 + 1 = 1
1 + 1 = 2
2 + 1 = 3
3 + 1 = 4
4 + 1 = 5
5 + 1 = 6
6 + 1 = 7
7 + 1 = 8
8 + 1 = 9
9 + 1 = 10
2) 条件セクション:
ループが継続するか停止するかを確認する式を含める必要があります。個別のアクションが複数ある場合は、コンマで区切る必要があります,
。
すべての-loop 反復の前に 実行されます。for
for($i = 1, $j = 0; $i++, $j < 10; $j++){
echo "{$i} + {$j} = ", $i + $j, PHP_EOL;
}
結果:
2 + 0 = 2
3 + 1 = 4
4 + 2 = 6
5 + 3 = 8
6 + 4 = 10
7 + 5 = 12
8 + 6 = 14
9 + 7 = 16
10 + 8 = 18
11 + 9 = 20
-loop のこのセクションのカンマはfor
、最後のものを除いて、このセクションの前のすべての式を無視します (@ 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
関係なく、2 回目の繰り返しです$i < 1
。false
デフォルトの実行前ステートメントとして使用される場合があります。
3) post_execution_section:
ループ本体のアクションが実行された後に実行する式を含める必要があります。個別のアクションが複数ある場合は、コンマで区切る必要があります,
。
-loopの反復ごとに実行されます。 for
for($i = 0; $i < 10; $i++, $i *= 2){
echo $i, PHP_EOL;
}
結果:
0
2
6
また、各for
-loop セクションは空 (何もしない) で、セミコロン;
区切り記号が保持されている場合があります。
for(;;){
// infinite loop
}