php的流程控制 + f8 Q& O- M$ K7 h2 P& z. W3 `
- u6 s% b, l# |0 p1、if……else 循环有三种结构
1 O# o2 p3 x; k6 h第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: $ ~ k0 y# s+ Y+ S. @
2 e" A/ s# e/ T6 n9 c
if (a) { statement }
( {, N+ N2 q7 u. [# U8 f5 i其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
' p! X5 d# r& {/ t范例:本例省略大括号。 3 V0 M }: U+ [5 S# S
# s& b. K1 L5 g2 E% p% z
<?php $ o; W' T$ S* [
if ($a==1) echo "我爱php" ; " s$ Q1 P* l+ G H' U
?>
. N" F' F9 V8 Z$ c/ c' ~
, p5 q' `6 U2 M这里特别注意的是,判断是否相等是==而不是=。
6 t4 N6 u5 [/ ]3 ^范例:本例的执行部分有三行,不可省略大括号。
* F* Z |% A4 r2 Z' Z' `4 O" I% {
3 s- A D) O" b7 G<?php 8 G6 M" R; B6 G5 v/ o! A
if ($a==1) { 0 q7 y$ |! ?6 Q+ q7 ]6 n5 O. Z2 {
echo "我爱php" ;
' X+ n9 ^# s$ ]& G. o# q# C) }echo "<br>" ; + X9 Y+ I) o: |! U% _7 X6 Q: S
}
8 Q# G# q; o* u* L3 u( \0 _3 D- ??> 0 n- D: v; i' r' u! j
5 k. P* d/ T7 a% P第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
5 s/ k/ r3 K) t# d! n/ _
8 ~. t+ {: T8 L3 q# Qif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
( k# g8 J7 Z7 R2 R<?php
' ?- s4 e1 y! |( K2 g8 u% Eif ($a==1) { 7 q6 _* k$ ?& i6 e
echo "我爱php1";
2 [2 F8 P; n' N/ q! q; Kecho "<br>";
8 K5 w% {, q; i}
/ A$ N& a9 ~6 H1 O' E) y' i$ m& qelse {
3 ]0 L- _- I) R& v# I, ~echo "我爱php2";' R' J5 @. N" l. i6 H1 C B- {
echo "<br>";
2 a$ I8 g- M5 x" G J}
/ M% {; ~/ ~ E2 R9 S4 w2 H?>
W7 B& t x: y1 G1 i5 e/ h3 z; [& r9 o
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。- } A9 t% o4 K" l7 A
直接看下面的例子 / o2 t N2 [" R8 m& l
<?php
8 \: y2 c9 M6 Q2 _9 t% R7 f" Uif ( $a > $b ) {
9 t5 @7 e8 g) N& {3 Kecho "a 比 b 大" ;
7 M( ^% X/ K: E; p/ c7 ^4 U1 C} elseif ( $a == $b ) { 4 w$ e6 R: B; x. h4 D
echo "a 等于 b" ;
, @- O. E7 {5 t( M} else { % F1 B8 ]& [. Q8 B
echo "a 比 b 小" ; ^! C3 f A& s9 y5 z& {9 A5 E& V/ S+ C
} ) B3 I- ^6 o/ R$ x0 [
?>
0 a( F% \4 B) W, l, I
: i7 N& O$ n2 ?5 A5 K/ T" I2 w2、for循环就单纯只有一种,没有变化,它的语法如下 , d- Y5 Y4 J% h, c8 z
( y. u& \+ U( V4 u- J
for (a; b; c) { statement }
' O8 ]3 @/ Q8 N其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
V C3 D6 ^% z下例是用 for 循环写的的例子。 1 q& k% [4 J5 X7 h2 j
<?php
3 M6 E( n3 Y9 \4 U2 R7 H1 C$ {3 m/ Zfor ( $i = 1 ; $i <= 10 ; $i++ ) { * x( A* I! q; F @
echo "这是第".$i."次循环<br>" ; / m2 e5 v3 u$ _6 N G: K
} / Q6 T3 ?+ f" m, v
?> 2 V, y6 l* N' M
) y j; F9 S$ w( `3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。/ }3 {) p; d7 e9 }2 i6 B, u
语法如下:7 E$ U; F! g8 _' p
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
9 d" k( A/ R2 t. G其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ! L2 X+ Q9 N: A5 C; _
6 v! b4 K( U+ ~
<?php
5 _+ o$ w6 t$ q; _& ?switch ( date ( "D" )) { & r0 \# z; K2 j* s. F/ b
case "Mon" :
/ x5 q5 C' I5 ]$ pecho "今天星期一" ; ' k( T# ?5 o- w) J9 K
break;
/ u6 R; Y2 V- r& N" Pcase "Tue" :
: ~5 i6 E" O3 Z2 Y6 {& B0 gecho "今天星期二" ; 8 s5 X+ s, A& w6 I
break;
- s( A! w9 V- R$ |2 Q" Vcase "Wed" :
8 g- j& ~: R/ X8 ?; Vecho "今天星期三" ; 4 B0 v- U$ ^+ N; J+ S) @
break; ( B* S; k( d2 w4 V% t% A" ]1 v0 f
case "Thu" :
- C& M" M7 R x& t/ \echo "今天星期四" ;
0 P( L% o0 j/ A1 @; ?break; 1 C/ [* C5 ~' U! X8 z
case "Fri" :
# e* {* u$ Q1 q2 z% d& ] Z- Wecho "今天星期五" ;
9 s- a( u/ \; h5 m5 p Obreak; / N9 U9 [. ]5 J
default: 1 }% P! n5 Z4 ?2 y# N
echo "今天放假" ;
( _) u! b3 i. I% G& Rbreak; % o7 _$ f' ~! H; |1 X5 y+ N
} : b. n H$ m2 v( R
?> - l# S4 u9 o' p R& B
这里需要注意的是break;别遗漏了,default,省略是可以的。3 _' f+ z2 i1 Q |4 B5 T" a
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
% @5 A. L+ `+ G8 n* A# A+ j$ g; o十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |