while文
処理が終わるように書き忘れて無限ループになりやすいので注意
--->while.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
<link rel="stylesheet" href="test1.css">
</head>
<body>
<h1>while文</h1>
<p>
<?php
$i=1;//宣言が必要
while($i<=5){
echo $i.("めのくりかえし<br>");
$i++;
}
?>
</p>
</body>
</html>
--->while2.php
文字列でもできる
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
<link rel="stylesheet" href="test1.css">
</head>
<body>
<h1>while文</h1>
<p>
<?php
$str="";//宣言が必要
while($str!="aaaaa"){
echo $str."<br>";
$str.="a";
}
?>
</p>
</body>
</html>
while文は
phpでselectしてきた件数分だけ繰り返してねというときによく用いる
この場合forが使えない?らしい
つまりphpではwhile文も知っておいてねという
selectでとってきたものは「結果セット」というよくわからんものでかえってくるらしい
配列でないのだ
なのでfor eachというのがあるらしい(javaScriptでいうところのfor of文というのに対応するらしい)
よくわからん結果セット→配列にしてやる
みたいな
教科書p034
forとifを組み合わせて繰り返しを中断
break;
continue;
どうしてこういうのを使うのか?
上限を切るのに使うのだ
<?php
$num=$_GET["num"];
for($i=0; $i<$num; $i++){
echo $i."<br>";
$if($str==3){
break;
}
}
?>
ユーザからおくられてくるのは2かも100かも1000かもしれない。
2だったら2でおわる
100だったら3でおわる
1000でも
という風に、「上限をきる」ということができる
continueは、
<?php
for($i=0; $i<5; $i++){
$if($i%2==0){
continue;
}
echo $i."<br>";
}
?>
「偶数だったらとばしてね」とか
「こざきだったらとばしてくれ」というのに使う
continueはif分のそとのfor文にかかっているかというよりは、
if文じたいが「条件」で、
continueになったらそのブロックを抜けるみたいな雰囲気らしい
for($i=0; $i<5; $i++){
continue;
echo $i."<br>";
}
こうやってかいたら全部すっとばす。ぜんぶじゃなく条件をもたせている感じ
--->for.php
ifの条件文でbreakなりcontinueはそのひとつ上側のブロックをとめるなりスルーするなりするだけで、
さらに外側とか全体を止めるわけではないよ
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
<link rel="stylesheet" href="test1.css">
</head>
<body>
<h1>二重forの内側にifでbreak</h1>
<p>
<?php
for($i=0; $i<5; $i++){
//2nd for
for($j=0; $j<10; $j++){
if($j==3){
break;
}
echo ("i=".$i." j=".$j."<br>");
}
}
?>
</p>
</body>
</html>
とまっているのは内側のforだけなので、i=4までいくしjは9までいかない。