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 応用実地編資料