php的流程控制
0 c$ X& [2 D( q* i3 Y, y6 V* h! L$ i m" \* A3 T' p
1、if……else 循环有三种结构
3 h. S( V/ B0 w% R8 A. Y/ F第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 9 r% J& n" |3 `$ N9 {( l
" ~5 N5 W, y* B$ S: `! L: T
if (a) { statement }
]7 p6 ~1 B- t1 V其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
1 j1 ]' B) ]& q# e. V6 l9 p% h! L范例:本例省略大括号。 8 a6 l6 i9 H6 R* k3 |
# ?0 |0 W# @9 }7 ]9 m- m! y4 ?
<?php ! _- B2 [, ^# b; m! q$ z
if ($a==1) echo "我爱php" ; 4 n! @' {! S! D+ w& C b9 l
?>
7 `7 ~( s9 H$ F) ^( c2 ^" Y, [' ^0 p! s; ~
这里特别注意的是,判断是否相等是==而不是=。, B4 Q- k! b( g6 z/ [* _
范例:本例的执行部分有三行,不可省略大括号。 - B1 y2 B' X/ y+ p( `2 N4 b$ O
8 [ E5 ^* S+ a# u
<?php - @& D6 V- ~6 j8 X/ d5 [
if ($a==1) { 3 C6 O" s. p! n2 ]
echo "我爱php" ;
6 U3 v1 a1 X; Qecho "<br>" ;
5 V5 O" Z+ v, p C} 4 m. j1 Y0 [! ], w
?>
+ y( F- p( P2 \ b( m9 N3 N; H0 ?% V9 L! w1 B: o) n
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
! h( g3 b9 \3 }5 x. N0 b \" i/ q4 @
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
! l" Y1 }% w. d0 S# l! J. \+ i<?php
s' k8 [' F9 i. i: S: uif ($a==1) {
& }+ L5 N9 v# o. M7 j& Mecho "我爱php1";
4 C9 u0 N$ s" R$ v! F1 Secho "<br>";
C9 J. t2 E* G$ A}
7 U. g. @! x* `- n( V2 gelse {
$ d. s% U! q& A& ~6 Zecho "我爱php2";& _& D) Q5 y: m) A
echo "<br>";
% O$ G' \; w& l! |4 a+ i6 [' \. p}
: y% A) M/ g' @& ]1 |9 O0 w; x?> # }( @+ _2 s0 q5 [' ~
- `9 }+ G. f+ X+ A* Q( g8 f第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。) \9 `. f0 X. c" B1 P- ]- F8 m
直接看下面的例子
3 Y9 ~% S- }9 r$ H* m4 {8 C<?php
' W8 }2 o0 H7 I" { gif ( $a > $b ) { / f0 a; @: g H: m8 A
echo "a 比 b 大" ; ; m# u% i; R1 v( v8 t5 p
} elseif ( $a == $b ) { ) A5 h. x7 t. x
echo "a 等于 b" ; 6 j5 ?1 {; V5 j+ C
} else {
1 F& Q$ } Y* p# _" _4 ?# ]echo "a 比 b 小" ;
$ Q5 N6 ^+ X" J& m ~) B* p* d}
* I* d; v% H& e- A7 E3 {6 I' M) W?>
2 ^( I! L: h& U/ [ C" R+ B4 }" l
6 j" j6 t- m1 ~2 v. m4 Q# P" l2、for循环就单纯只有一种,没有变化,它的语法如下
) _1 ^6 Y, M7 c4 M" f
( @* U# X: w& l, ]; U B- Jfor (a; b; c) { statement }
* G% A2 r5 w3 I( w其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。% |: ^$ b0 ?9 X0 B+ [5 \) k" S5 s
下例是用 for 循环写的的例子。 ( f* n6 v( `7 W
<?php 5 | M, H5 \# G6 F" ^$ T
for ( $i = 1 ; $i <= 10 ; $i++ ) {
: I& J( d8 r2 a% yecho "这是第".$i."次循环<br>" ;
) j- [% o* o4 Q/ y! z5 Z$ C# `" |}
- S# Z; C- h7 N6 C8 ^, U?> * Z% I: K6 R& w- h* Q6 ^. g/ d
v( ]* u: C" u1 |, i3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。* b; G H L8 v( g
语法如下:0 o1 x4 K0 F2 r# D: w$ x
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } * O7 |* Z6 z% s& e8 y
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 x1 F3 p) }3 z/ Y# J9 J
+ V: T0 |$ I/ t5 H$ Z. z3 A<?php / `6 T, ^% X8 ~
switch ( date ( "D" )) {
( _) K$ |0 W( O- G jcase "Mon" : # N9 D/ Q5 B/ _' G9 ?
echo "今天星期一" ; ; ?5 {$ V/ @7 ?1 s j" h
break; ! [- r. t4 r7 h, y
case "Tue" : 2 W; O7 o1 b4 i( e" D6 `2 q
echo "今天星期二" ; 0 J! `* k1 o; }) d2 q% Z- s
break; 8 ~: v+ W! i4 O1 O8 B
case "Wed" : ( |+ I; r0 A5 ~& }9 Z
echo "今天星期三" ;
7 _5 l' N4 j' ]' B) _( Y: n2 Zbreak;
- F, E4 ^" Z6 H6 ~, E0 F7 m8 R+ fcase "Thu" :
& k# P9 x' P" _/ D# ~9 gecho "今天星期四" ;
) d) M! G; w5 k2 n) Sbreak; % S6 z z# @; W* ^0 }
case "Fri" : 0 ]0 r: L+ ?* ~; }
echo "今天星期五" ; 7 ~% q! G& j+ M$ ^/ j) N
break;
' x$ F, o4 h v! {. Mdefault: , i0 t. f/ Q: t% F$ p/ P
echo "今天放假" ;
6 v% J, r: Y$ y! y" K$ z: w S& B, ]break;
- g( ]! w- k: d' s} 7 U' ]3 `. y- \6 ^
?> . y' ~/ X4 v6 t" P4 F& R
这里需要注意的是break;别遗漏了,default,省略是可以的。
4 ?. f7 h) J9 {2 }很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
6 I& w/ q3 o7 m- Y5 }6 z! i& u十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |