while文は、下のように()内の条件を満たす間、{}内の処理を繰り返す、というイメージを持っています。
このとき、{}内2行目の$i += 2;があることで、()内で検証される条件が1, 3, 5…と変化していくので、
いつかは条件を満たさなくなると思っています。
$i = 1;
while(10 >= $i){
echo $i . PHP_EOL;
i += 2;
}
もし、$i += 2;の条件が抜けている場合、ずっと$i=1なので、while文の中身が永遠にループすると思っています。
$i = 1;
while( $i >= 10){
echo$ i . PHP_EOL;
}
今回は、fgets($fp)の値がtrueの間はwhile文を実行しています。
ただ、上の$i += 2;のような条件が変化するための式がありません。
fgets($fp)の戻り値が配列(例えば[true, true, true, true, false])になっていて、一つずつ取り出してfalseかどうかを判定しているのかと思っていたのですが、戻り値は配列ではありませんでした。
下記コードはどのような理屈でくりかえされているのでしょうか?
while (($line = fgets($fp)) !== false) {
echo $line;
}
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?