制御文

PHPは他のプログラミング言語と同様に上から下へ実行されますが、その実行の流れを変える制御文も準備されています。


if (条件) else

ある特定の条件の時、実行したりしなかったりしたい時に使います。

ifの例1
<html>
<body>
<?php
$a = 1;
if ($a == 1)
	echo "<p>aは1です</p>\n";

$a = 2;
if ($a == 1)
	echo "<p>aは1です</p>\n";
?>
</body>
</html>

この例では1度だけ「aは1です」と表示されます。「==」は値が同じかをチェックしています。

ifの例2
<html>
<body>
<?php
$a = 1;
if ($a == 1)
	echo "<p>aは1です</p>\n";
else
	echo "<p>aは1ではありません</p>\n";
?>
</body>
</html>

この例では「aは1です」と表示されます。「else」は条件に合致しないとき実行されます。


ブロック構造

さきほどの「ifの例2」では、「if」の後や「else」の後には1行(1命令)だけ書きました。 「if」の後に複数行(複数命令)書くときはブロック構造を使用します。

ifの例3
<html>
<body>
<?php
$a = 'DEF';
if ($a == 'ABC') {
	echo "<p>aは'ABC'です</p>\n";
}
else {
	echo "<p>aは'ABC'ではありません</p>\n";
	echo "<p>aは'$a'ですよ</p>\n";
}
?>
</body>
</html>

上の「ifの例3」ではelse以降が実行されます。 elseの部分が「{」と「}」ではさまれたブロックになっているので、この中の複数行(複数命令)が実行されます。

aは'ABC'ではありません
aは'DEF'ですよ

なお、このようにブロック構造の時には、ブロック内部を右にずらすようにプログラムを書いたほうがずっと見やすくなりますし、 ミスも少なくなりますので、出来る限りこのような書き方をしましょう。


ループ

プログラムを作っていると同じような動作を何回か実行したい時があります。このような時、ループ文を使います。

PHPにはいくつかループ文が準備されています。


while

条件に合致している間だけループします。

whileの例1
<html>
<body>
<?php
$a = 1;
while ($a <= 10) {
	echo "<p>aは$aです</p>\n";
	$a = $a + 1;
}
?>
</body>
</html>
whileの例1 実行結果
aは1です
aは2です
aは3です
aは4です
aは5です
aは6です
aは7です
aは8です
aは9です
aは10です

for

for文はwhileとほぼ同等の使い方ですが、「変数初期化」「条件チェック」「次のループへの準備」という3つの部分を1行に 記入できるので、たいへん便利です。また、プログラム自体がすっきりする場合が多いです。

さきほどの「whileの例1」と同等のプログラムをfor文を使って書くと以下のようになります。

forの例1
<html>
<body>
<?php
for ($a = 1; $a <= 10; $a = $a + 1) {
	echo "<p>aは$aです</p>\n";
}
?>
</body>
</html>
forの例1 実行結果
aは1です
aは2です
aは3です
aは4です
aは5です
aは6です
aは7です
aは8です
aは9です
aは10です

なお、上記の例では
for ($a = 1; $a <= 10; $a = $a + 1) {
となっていますが、
for ($a = 1; $a <= 10; $a++) {
でも同じように動作します。

「$a++」は「$a = $a + 1」のように、変数を1だけ増やす時に使います。どちらでもかまいませんので、自分が使いやすいほうを使いましょう。

同様に「$a--」は「$a = $a - 1」と同じ意味です。

戻る

Copyright©2001-2019 釣ったよ! All Right Reserved.    sg@tsuttayo.jpn.org