php的流程控制 + A5 K$ }- K g$ ^& _
/ Z/ \+ U* X0 N4 u) s
1、if……else 循环有三种结构
m/ |9 b0 {6 c1 u8 j第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 9 M" N) ^' [% j c6 B$ o9 I
, F* a2 [1 n" s! b# Bif (a) { statement } + L+ A1 G5 o( u% \& V3 n
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。2 O0 t9 @2 }2 `2 M9 f
范例:本例省略大括号。
3 }% v: i3 U5 [9 @8 h4 s5 }7 P8 ~1 x2 V: U
<?php
% E) T) w, Q5 T% _if ($a==1) echo "我爱php" ;
, U2 s8 |! e/ b: P$ @' s, Q; @?>
9 q1 o# ]: o& {8 ?: l
. q1 k- w' K3 X$ e; m这里特别注意的是,判断是否相等是==而不是=。' Y% H1 u: l$ W+ q
范例:本例的执行部分有三行,不可省略大括号。
. d% O4 B7 Z0 V* D
4 V: W+ X$ ^* J4 {: c<?php * Z( [" ?* J7 w! u, ^ p
if ($a==1) {
1 w" O: c! f- G6 \- s5 recho "我爱php" ;
/ K& T$ a8 J! aecho "<br>" ; 5 v$ s' ]0 Y& X) w' d1 x8 H
}
3 @% N3 N/ \0 v$ c7 ~1 }3 z' y?> 9 _8 F9 e d; V1 t% }* G/ P
, @7 \/ V& {; h6 u# j/ z+ {5 L第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
3 ?$ q! j$ H, u
0 g. f; b) A, {3 c- F3 tif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 " Y, W# s: H: T) Z2 `- g! ^
<?php
+ E- b5 S( p M6 {1 \3 q+ yif ($a==1) {
$ w |4 G B# u) C! |) I9 D6 Techo "我爱php1"; ; S) B) W/ k5 ~$ p5 w3 C6 R
echo "<br>";3 S1 U: a8 q$ U
} P p) i3 }* L$ S) ^
else {
/ h9 Q2 T: r' s" W% H" n5 Mecho "我爱php2";* `6 s8 q% Z7 U1 k8 N
echo "<br>";
4 N. r& q8 A' p3 q}
2 R* l5 o# y b; x6 q?> " G% k* j) O; q2 H p
9 H/ c6 h% j5 z
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
7 D* n3 l! L% N$ J k. u# ~$ F* Y直接看下面的例子 # j$ X3 g! J+ W
<?php
) L; B, ^( O1 R( K/ Tif ( $a > $b ) {
8 E( r$ _, C# b) V) [0 pecho "a 比 b 大" ;
- X& o- l {7 s+ j1 s! T} elseif ( $a == $b ) { ( T* t7 C' R1 i" J0 w1 C8 z
echo "a 等于 b" ;
- ^2 g/ l0 k$ |% ]5 I} else {
+ n$ p8 `* `2 s* l$ s" b2 [4 Cecho "a 比 b 小" ;
0 r6 m9 B4 {/ L+ V% I2 G} $ g1 s/ c# p; n( \1 L
?>
! F9 g6 a9 f1 A4 k6 s( C1 X. s6 {" ^0 a# a
2、for循环就单纯只有一种,没有变化,它的语法如下
" P, p0 L6 O+ P, k
; F( t3 v5 M) ?) { \for (a; b; c) { statement } ) _8 y% |; l1 ~ B' g* L
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
3 L) ]& H! |8 u. r9 J; ^, r3 R, a下例是用 for 循环写的的例子。 ' V5 c. M% E& v% D( {& t/ ?5 y
<?php ' F/ B1 m# R) M8 N/ c. H
for ( $i = 1 ; $i <= 10 ; $i++ ) {
+ `+ v0 F7 t4 w3 l# [echo "这是第".$i."次循环<br>" ;
! J1 v3 ^! f: `) h/ q: h}
1 Y0 C! V9 s: x0 S) G?>
2 W/ w0 b* P r, _
- g' {+ s0 f# S+ k1 P `; a: u3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。5 e( X. K1 N$ ]/ F
语法如下:
5 D2 q4 y! D' a/ I/ W& d3 l6 qswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 V" S5 E6 R, f* l, w
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
4 y& d" A3 r4 Q/ ]4 H; G1 j ^2 H- f4 I, W/ O) Z' I& T! r6 }
<?php
6 ?: x5 X0 |+ F8 ?9 `2 e! l$ Vswitch ( date ( "D" )) { ; ]$ _8 }8 {) G$ D4 n: G
case "Mon" : 2 j; [6 A" m& Q1 \5 Z$ J
echo "今天星期一" ; 8 ~" F* }& `5 d1 |. r* p$ F; l( l/ x
break; ! e u! @7 }0 f' J* b
case "Tue" :
* X+ S2 r8 N) _) a8 Hecho "今天星期二" ;
7 C2 A) _% ^, B5 Qbreak;
2 k; ?2 ]# U* X' \case "Wed" :
7 f5 |0 d+ P* |& X5 e+ Necho "今天星期三" ;
, a8 I% e3 N" i1 @1 Q V6 t1 j4 G0 Ibreak; 4 Q6 B& o+ q, B+ ^: [& |
case "Thu" :
* \$ U) d2 @. T" @% G% Techo "今天星期四" ; 2 N2 H3 |5 W, a. Y5 f: ~
break;
5 X6 p( f- g! ^3 ^3 Zcase "Fri" :
. p Y4 O0 U* I$ L4 p* N! x+ k5 P- d9 necho "今天星期五" ; 5 i3 \8 P2 m$ [/ I
break; ' l; Z7 H; ^' d' c# d! B
default:
5 f W* p$ H7 p* E; [: F* Necho "今天放假" ;
# [! {, G/ {9 vbreak; 8 [5 L7 O) h: { p ]1 g
} x. j2 x: N2 |( M7 L ]
?>
5 w* u' J* x7 n/ S$ G这里需要注意的是break;别遗漏了,default,省略是可以的。0 e* d" P1 ]: R8 o5 G3 L
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。6 W8 G. y# a' d' F) ]: g0 E
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |