考え、感じる、Web制作。

Web制作の学習や情報についての記事が中心です。

php while,continue,break,foreach

while

for文と概ね同じ。繰り返し回数が固定の場合はfor文で、分岐がある場合はwhileで、との表記を見たが、forでも分岐は作れてしまうのでイマイチ差異が理解できていない。DBを扱いだすともう少し分かるらしい。for文よりはvbaに表記が似ているので、こちらの方が好みではある。

サンプル

<ul>
<?php
$flt=array('りんご','いちご','ぶどう','メロン');
$i=0;
//while(終了条件){処理}
while($i<=3){
print"<li>{$flt[$i]}</li>\n";
$i++;
}
?>
</ul>

実行結果

$fltの中身が全て書き出される。

 

 

continue

繰り返し処理を停止し、繰り返し処理の先頭行に戻る。通常はwhile内にifで配置。

サンプル

<ul>
<?php
$i=0;
//continueはif条件にtrueなら、while行(またはfor行)に戻る
while($i<=55){
$i++;
if($i<=5){
continue;
}
print "<li>{$i}</li>";
}
?>
</ul>

実行結果

6から56が書き出される。

 

 

break

繰り返し処理を終了し、後続処理を開始させる。通常はwhile内にifで配置。vbaのexit forと同じ使い方。

サンプル

<ul>
<?php
$i=0;
for($j=0;$j<=10;$j++){
while($i<=55){
$i++;
if($i>=5){
break;
}
print "<li>{$i}</li>";
}
print "<p>{$j}</p>";
}
?>
</ul>

実行結果

1~4が書き出される。

 

 

foreach

foreachは配列に対し使い、keyや値を取り出すときに多用される。

停止条件を指定しなくても配列にある値の個数回だけ繰り返される。

for文でも可能なことが、簡潔に書けるといった理解。

(下記の例で、$kや$vは任意かつ宣言不要)

サンプル

<?php

$touhoku=array('青森県'=>'青森市','岩手県'=>'盛岡市','宮城県'=>'仙台市','秋田県'=>'秋田市','山形県'=>'山形市','福島県'=>'福島市');

print"<h1>東北六県</h1>";
print"<ul>\n";
foreach($touhoku as $k=>$v){print"<li>{$k}の県庁所在地は{$v}</li>";}
print"</ul>\n";
?>

実行結果

全てのkeyと要素が書き出される。