Close

Web技術Tips

Homepage Tips Homepage Tips

ホームWeb技術TipsPHP 条件分岐まとめ

SHARE

SHARE

PHP 2015.06.22(公開)

PHP 条件分岐まとめ

目次

  1. If文
  2. while文
  3. foreach文
  4. do~while文
  5. for文
  6. switch文
  7. break
  8. continue

If文

<?php
$A = 5;
$B = 3;
echo "\$A = " . $A . " \$B = " . $B . "<br />";
if ($A > $B) {
 echo "A > Bです。";
} else {
 echo "A > Bではないです。";
}
?>

もしくは

<?php
$A = 5;
$B = 3;
echo "\$A = " . $A . " \$B = " . $B . "<br />";
if ($A > $B) : ?>
 <p>A > Bです。</p>
<?php else : ?>
 <p>A > Bではないです。</p>
<?php endif; ?>

実行結果

$A = 5 $B = 3
A > Bです。

while文

<?php
 $A = 5;
 $B = 3;
 while ($A > $B) {
 echo "\$A = " . $A . " \$B = " . $B . "<br />";
 echo "A > Bです。<br />";
 $B++; // Bの値を1増やす。
 }
 ?>

もしくは

<?php
 $A = 5;
 $B = 3;
 while ($A > $B) : ?>
 <p>$A = <?php echo $A; ?>$B = <?php echo $B; ?></p>
 <p>A > Bです。</p>
 <?php $B++; // 無限ループ対策。$Bの値を1増やす。
 endwhile; ?>

while文の条件である$A > $Bがtrueの限り無限ループになります。

実行結果

$A = 5$B = 3
A > Bです。
$A = 5$B = 4
A > Bです。

foreach文

<?php
$A = array(1,2,3,4,5);
foreach ($A as $B) { // $Aの中に配列があれば
 echo $B . "<br />";
}
?>

もしくは

<?php
$A = array(1,2,3,4,5);
foreach ($A as $B) : // $Aの中に配列があれば ?>
 <p><?php echo $B; ?></p>
<?php endforeach; ?>

実行結果

1
2
3
4
5

このような配列でも処理出来ます。

<?php
$A = array(
 'aaa' => 'あああ',
 'bbb' => 'いいい',
 'ccc' => 'ううう',
 'ddd' => 'えええ',
 'eee' => 'おおお'
);
$B = array_keys($A);
foreach ($B as $C) : // $Bの中に配列があれば ?>
 <p><?php echo $C; ?></p>
<?php endforeach; ?>

実行結果

aaa
bbb
ccc
ddd
eee

配列のkeyの値を取得しています。(通常はvalueの値を取得します。)

do~while文

do~while文はwhile文とほぼ同じですが、条件の一致・不一致は問わずに最初の1回だけは実行されます。

<?php
$A = 5;
$B = 30;
echo "\$A = " . $A . " \$B = " . $B . "<br />";
do {
 echo "A > Bです。";
 $B++;
} while ($A > $B);
?>

実行結果

$A = 5 $B = 30
A > Bです。

A > Bという条件はfalseなので、最初の1回だけ実行されています。

for文

while文と同じくループ処理を行います。予めループ回数が決まっている際などに用いられます。

<?php
for ($i = 0; $i < 10; $i++) {
 echo $i . " ループ継続。<br />";
}
?>

もしくは

<?php for ($i = 0; $i < 10; $i++) : ?>
 <p><?php echo $i; ?> ループ継続。</p>
<?php endfor; ?>

実行結果

0 ループ継続。
1 ループ継続。
2 ループ継続。
3 ループ継続。
4 ループ継続。
5 ループ継続。
6 ループ継続。
7 ループ継続。
8 ループ継続。
9 ループ継続。

switch文

<?php
$A = rand(1,4); // 1~4の数字をランダム
switch ($A) {
 case 1 :
 echo "数字は1です。";
 break;
 case 2 :
 echo "数字は2です。";
 break;
 case 3 :
 echo "数字は3です。";
 break;
 case 4 :
 echo "数字は4です。";
 break;
}
?>

もしくは

<?php
$A = rand(1,4); // 1~4の数字をランダム
switch ($A) :
 case 1 : ?>
 <p>数字は1です。</p>
<?php break;
 case 2 : ?>
 <p>数字は2です。</p>
<?php break;
 case 3 : ?>
 <p>数字は3です。</p>
<?php break;
 case 4 : ?>
 <p>数字は4です。</p>
<?php break;
endswitch;
?>

caseの最後には毎回breakが必要となります。

実行結果

数字は4です。

条件分岐は数字ではなく文字でもできます。

<?php
$A = array("aaa","bbb","ccc","ddd"); // 文字列を配列に格納。
$B = array_rand($A); // $Aの配列からランダムに取り出す。
switch ($A[$B]) {
 case "aaa" :
 echo "文字列はaaaです。";
 break;
 case "bbb" :
 echo "文字列はbbbです。";
 break;
 case "ccc" :
 echo "文字列はcccです。";
 break;
 case "ddd" :
 echo "文字列はdddです。";
 break;
}
?>

実行結果

文字列はdddです。

文字列で分岐させる場合はcaseの値をダブルクォーテーション(")で囲む必要があります。

break

switch構文に登場したbreakですが、これは実行中のwhile, do while, for, foreach, switchの処理を抜けるために使用します。

最も内側のループ処理を抜けるため、複数のループから抜け出したい場合は、このように記述します。

break n;

nには数字が入ります。

<?php
$A = 1;
while (1) { // while (1)は無限ループです。
 while (1) {
 if ($A == 10) { // $Aが10になったらループ終了。
 break 2; // 内側のwhileと外側のwhileの両方を終了させています。
 }
 echo "\$A = " . $A . "です。<br />";
 $A++; // Aの値を1増やす。
 }
 echo "aaa"; // break 1だと表示されます。
 break;
}
?>

実行結果

$A = 1です。
$A = 2です。
$A = 3です。
$A = 4です。
$A = 5です。
$A = 6です。
$A = 7です。
$A = 8です。
$A = 9です。

continue

breakはループ処理自体を終了させるための構文ですが、continueはループ処理を1回だけスキップさせる構文です。

<?php
$A = 1;
while (1) { // while (1)は無限ループです。
 $A++; // Bの値を1増やす。
 if ($A == 30) {
 break; // $Aが30を超えたらループ終了。
 } elseif ($A % 2 !== 0) {
 continue; // 奇数の場合スキップ。
 }
 echo "\$A = " . $A . "です。<br />";
}
?>

実行結果

$A = 2です。
$A = 4です。
$A = 6です。
$A = 8です。
$A = 10です。
$A = 12です。
$A = 14です。
$A = 16です。
$A = 18です。
$A = 20です。
$A = 22です。
$A = 24です。
$A = 26です。
$A = 28です。

DOE(横浜)のニュースとブログ

News News

横浜のWeb制作会社DOEはホームページ制作に関連するWeb技術、Webデザイン、SEO対策情報など人気&おすすめ記事を随時公開中です。
尚、Twitterでは現場の声がリアルタイム配信中です。良かったらShareして繋がってください。