PHP 条件分岐、ループ
条件分岐
if、elseif、else
if(条件)がtrueの場合、if文の中の処理を実行します。elseif(条件)はif(条件)がfalse、elseif(条件)がtrueの場合に中の処理が行われます。elseはif(条件)、elseif(条件)が両方ともfalseの場合、中の処理が実行されます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$qty = 5;
if ($qty < 5) {
echo "less";
} elseif ($qty == 5) {
echo "equal";
} else {
echo "greater";
}
?>
</body>
</html>
文字列の比較
文字列の比較は、厳密に行うには === を使用すべきですが、型違いの比較を行っても良いとする場合は、strcmp関数を使用します。== でも比較できるように見えますが、0 == "a" がtrueと判断されるなど、型違いの比較で思わぬ結果が出る場合があります。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$str = "abc";
if (strcmp("ABC", $str) === 0) {
echo "ABC";
} elseif (strcmp("abc", $str) === 0) {
echo "abc";
} else {
echo "else";
}
?>
</body>
</html>
switch
switch(変数)と一致するcase 変数:があった場合、中の処理が実行されます。switch(変数)に文字列も指定できますが、比較は == で行われるため注意してください。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$qty = 1;
switch ($qty){
case 0:
echo "zero";
break;
case 1:
echo "one";
break;
default:
echo "else";
break;
}
?>
</body>
</html>
ループ
for、foreach
forは(初期のみ実行される処理;ループ続行条件;ループ処理毎に行われる処理)になります。foreachは、配列 as 配列の中身、または、配列 as 配列のキー => 配列の中身のように使います。
&を付けると、参照渡しとなり、配列の中身を変更できるようになります。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
for($i = 0; $i < 5; $i ++) {
echo $i;
}
echo "<br />";
$ary = array ("a","b","c" );
foreach ( $ary as &$str ) {
echo $str;
}
echo "<br />";
$map = array ("a" => "abc", "b" => "bcd", "c" => "cde" );
foreach ($map as $key => $value) {
echo $key . ":" . $value . "<br />";
}
?>
</body>
</html>
while
whileは(条件)がtrueの間、ループし続けます。break;を通ると途中でwhileを抜けます。continue;を通ると、whileの頭に戻ります。
break、continue はfor、foreachでも使用できます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$qty = 0;
while ( $qty < 10 ) {
$qty ++;
if ($qty == 3) {
continue;
}
if ($qty > 5) {
break;
}
echo $qty;
}
?>
</body>
</html>
do-while
do-whileはループの1回目を必ず実行するwhileループです。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$qty = 0;
do {
$qty ++;
echo $qty;
} while ( $qty < 10 )
?>
</body>
</html>
ページのトップへ戻る