php的流程控制 : M( Q+ I- H8 Y0 O# {
^( u- M* w* l7 { y
1、if……else 循环有三种结构
* T1 a" x" ~) ?; v第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
* A7 a# S4 @+ R
' W! l7 |* G; ?# Vif (a) { statement } 0 @, s6 _8 F8 F' b
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。* c1 ]1 z6 M4 ~& K
范例:本例省略大括号。
& d0 D* A5 ~3 B' u* S! T7 [7 v
' x$ w" b1 k; z2 O; h; h' e<?php
% t9 @" f* `' ^if ($a==1) echo "我爱php" ; 7 k3 a* o0 R8 g
?>
$ Y, M& V8 S% l, j( B6 S$ K. ?2 W$ s3 X) U
这里特别注意的是,判断是否相等是==而不是=。( F- K5 o5 k5 D- H
范例:本例的执行部分有三行,不可省略大括号。 ! p: v! Y/ f/ q+ `
% Q6 p- T: b& X) D* N: I
<?php ; \2 c' [0 I4 b$ O' K
if ($a==1) { ( n1 c. l: b+ a
echo "我爱php" ; 4 D" o2 R$ R. M. M4 O
echo "<br>" ;
: q9 L7 \" g( J' `" L} 1 ]6 N; _3 j' _* u6 r9 b% \+ `$ n
?>
) }: a! Z R" G# V! @7 f1 `9 j
8 \$ Y: v7 ?1 T+ V9 d, S. l第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
( ]# {$ G! E* U2 Z) b) J
$ t0 e- r$ m8 _8 T) d2 o5 R7 `if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
3 } m$ s2 Z3 U' _) Y% X# q1 k" J<?php 4 {& z X5 N/ @+ R
if ($a==1) {
; t- }# t& W3 u* O6 e, Necho "我爱php1";
, I- t, t6 c. Z8 X1 recho "<br>";/ X% e" r Z/ G/ S/ z1 I
}
& c2 b1 i! R" telse {3 b8 C7 s$ Q9 f9 v H3 \3 Y" [. t
echo "我爱php2";8 M: {! ?2 W; g% k T
echo "<br>";
0 K3 B9 q1 ~+ h* I/ j& W3 z/ l1 r' ?} " D, e: q1 a0 [( c5 e: _2 e
?> ( V+ \$ f: e: m" I3 c
. t- L2 z7 u) c第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
! e8 C. h f) h* C: h直接看下面的例子 6 l, w5 v+ s/ |9 L$ g4 c
<?php ' \* ^8 U; y4 I* U2 @
if ( $a > $b ) {
7 }- l# t, I* V3 s9 becho "a 比 b 大" ;
2 ~/ V1 T( O+ t3 Q, G} elseif ( $a == $b ) {
3 G, D/ |' B) l: V% iecho "a 等于 b" ; / \. F! R8 J3 g
} else {
- \& t- s; ^) R3 j$ ]2 Qecho "a 比 b 小" ;
: X% M4 c/ P+ B* `3 G! a}
6 [6 J8 K7 h7 F- Z7 H3 C4 L?>
8 l" K D0 |; j% y5 t0 z0 K; z5 Y5 z! S- X
2、for循环就单纯只有一种,没有变化,它的语法如下
5 I8 a5 S! f$ G) ^9 x: N! t
, Z8 z/ Y! o* A# P4 b! L9 |for (a; b; c) { statement }
! Q2 v% O x# H; e其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。$ N4 _ a" i4 }6 P; E( v- r
下例是用 for 循环写的的例子。 0 o) ^- V9 {1 d, W) H Q
<?php 8 R" s, g0 {9 Z+ H4 p
for ( $i = 1 ; $i <= 10 ; $i++ ) { ( D6 | T5 \. E2 s# H/ z, ]
echo "这是第".$i."次循环<br>" ; / ^; K9 B; R% s/ p
}
) s9 o9 c8 r/ L- r3 Z0 _5 o0 h4 _1 h?> - J. r' o& s2 `% H6 i
, \+ w8 u. y3 w/ y8 H" S" G
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。% |6 G$ z. k, [) p, ?0 t" T0 i
语法如下:
9 D! k- H! D+ h: E- X/ `5 z7 G$ Iswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } ) }& K7 k1 |: m0 M
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 : l7 |5 Q* _- A% Z* o
, O( a- N* u' h& g3 L7 M) K# b
<?php
# ~( k7 g; }( v* }# E) R' sswitch ( date ( "D" )) { 9 p) l) i$ I; n! T( t
case "Mon" :
, R1 `3 R; G% [echo "今天星期一" ;
( n8 B7 `, T5 J6 i3 p- _break; ! O- ^0 }4 `/ l) B3 l0 p
case "Tue" :
) A) M2 A, Q2 ]( a- K/ `echo "今天星期二" ;
. \: T% [9 q- Y* Q/ Mbreak;
0 q, b! }- R2 a6 Icase "Wed" : 8 |+ S& |! U4 |
echo "今天星期三" ; , k: I4 n& B: H) V. U1 k4 q+ V! {5 L
break;
. G c2 M3 i- f3 ]9 Bcase "Thu" :
' F" \% N: c4 techo "今天星期四" ;
" z9 k! U' {! ^# dbreak; 1 @& |7 J7 N/ f3 S
case "Fri" :
' X( s [) F! y* Decho "今天星期五" ;
) O1 I3 Y8 G" O% g+ T$ Z2 jbreak;
5 o8 h% h3 Z" m. |) z3 u( i3 Ndefault: 6 B* U$ [1 y0 w7 V! V& [
echo "今天放假" ; - S( d$ Y8 i9 J b$ Q% k5 X# D
break; & \! F- _" T/ E- _& F
} 4 z, q* ^& m$ Z' ?
?> " r+ a- h5 h* S/ `1 s
这里需要注意的是break;别遗漏了,default,省略是可以的。& |! Z# y: D: h; L9 F
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。" V+ }) ~& [* @9 `
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |