SAK 図書館
PHP 基礎編2 - 制御構造(判定、ループ) if、switch、for、while、foreach、do
■条件式
・数値、文字列共に同じ比較演算子である。
== 等しい
!= 等しくない
< より小さい
> より大きい
<= 以下
>= 以上
=== PHP4 - 値と型が等しい
!== PHP4 - 値と型が等しくない
&& and (論理積)
|| or (論理和)
! not (否定)
and && と同じ (論理積)
or || と同じ (論理和)
xor 排他論理和(エクスクルーシブオア)
True 真
False 偽
■if () 文 判断
if (条件) {
条件が真のとき
}
else {
条件が偽りのとき
}
if (条件1) {
条件が真のとき
}
elseif (条件2) {
条件が偽りのとき
}
elseif (条件3) {
条件が偽りのとき
}
else {
全ての条件が偽りのとき
}
・数値 1, 2 などは、C と同じく True(真) 扱いである。
0 は False(偽り)。
if ($a == 1) $b = 2;
if ($a == 1) {
$b = 2;
}
if ($a) {
// $a が 2 でも真になるので注意
$b = 2;
}
if ($a == 1 && $b == 2) {
$c = 1;
}
if (strpos($a, 'key') != -1) {
$c = 1;
}
if (($i = strpos($a, 'key')) != -1) {
$c = substr($a, $i, strlen('key'));
}
・最後の代入結果を評価の対象にする構文は C ではよく見かける。
PHP でも使用可能である。
■switch () 多重判定
switch (式) {
case 値1:
break;
case 値2:
break;
default:
}
switch ($a) {
case 1:
case 2:
print "<P>case1</P>\n";
break;
case 3:
print "<P>case2</P>\n";
break;
default:
print "<P>case else</P>\n";
}
switch ($a) {
case 'abc':
print "<P>case1</P>\n";
break;
case 'def':
print "<P>case2</P>\n";
break;
default:
print "<P>case else</P>\n";
}
・break; がないと、順に下の case に流れる。
■for () ループ
for (初期値; 条件; 増分) {
break; // ループ脱出
continue; // 次のループへ
}
for ($i = 1; $i <= 10; $i++) {
$a[$i] = 2;
}
for ($i = 1, $j = 1; $i <= 10 and $j == 5; $i++, $j++) {
$a[$i] = ++$j;
}
for (;;) {
// 無限ループ
}
■while () ループ
while (条件) {
条件が真のときループ
break; // ループ脱出
continue; // 次のループへ
}
■foreach ループ (reset、while、each)
$d = array('abc', 'def', 'ghi');
reset($d);
while ($a = each($d)) {
print "<P>$a[0] - $a[1]</P>\n";
}
$d['key1'] = 'abc';
$d['key2'] = 'def';
$d['key3'] = 'ghi';
reset($d);
while ($a = each($d)) {
print "<P>$a[0] - $a[1]</P>\n";
}
■foreach ループ (PHP4)
$d = array('abc', 'def', 'ghi');
foreach ($d as $a) {
print "<P>$a</P>\n";
}
$d['key1'] = 'abc';
$d['key2'] = 'def';
$d['key3'] = 'ghi';
foreach ($d as $a => $b) {
print "<P>$a $b</P>\n";
}
■do () ループ
do {
break; // ループ脱出
continue; // 次のループへ
条件が真のときループ
} while (条件);
・ループが一度は必ず実行される。
■exit 脱出
exit; // PHP 脱出
return; // 関数脱出
■PHP 基礎編資料
■PHP + MySQL 編資料
■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料