php的流程控制 ! O; h% ~* H9 C5 l% I* v8 G
( L& l% S, z4 T, E- T1、if……else 循环有三种结构
% X& D/ ?! ]. |第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: % M' i& ]/ E6 D: ~3 M/ d- |3 w
6 O8 w6 S8 g/ V' O* _% B1 dif (a) { statement }
F5 @; T7 V1 n, G其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
$ ^& S. \+ p& m) O, s3 z% P范例:本例省略大括号。
' S/ t4 J/ A) \4 W. C2 e4 A5 Q2 U0 i6 B5 R3 p
<?php
& ?; A" J% Y t4 l. n0 x! m% oif ($a==1) echo "我爱php" ;
( `! J. E. G) c: m& y. z5 |?> " A4 u( f) X p8 H7 T
; k$ d2 ]% \7 g3 B8 H. R* m, m Q这里特别注意的是,判断是否相等是==而不是=。) S6 m" y7 c- f) Y" |7 P
范例:本例的执行部分有三行,不可省略大括号。
5 ]9 J- Z, L! \$ G7 g- V. W7 i: d+ K( R0 r
<?php . \% |5 |! d3 b: @% [
if ($a==1) { $ e/ i% B$ h/ a+ K1 ]2 D* c
echo "我爱php" ; 1 ^6 E+ B0 Y a, X. ^* O
echo "<br>" ;
, `$ r% Y/ S3 K} , q" r' }4 d5 k6 e
?>
. m5 L* }/ E& V+ J0 o" M+ C8 v
4 ^. c" a! O" ^ R0 g; e4 D7 ]第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 2 T; S) Q2 f7 a
! m @* b$ |0 s# _) A; X. Y" ]
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
1 ], W3 F9 Z6 Y U, P! @$ E<?php
k; d5 Y' r2 ~: g+ g, C2 X9 }if ($a==1) { 3 |, x" T g+ Y/ H: @) n+ W! \% R$ |( g
echo "我爱php1";
2 U/ x! _6 V# u8 T6 y9 techo "<br>";
: l7 V* O3 C9 R% k8 P g}
3 d2 x0 v6 Z" p$ g) l: T1 Aelse {
( W; q3 X2 P* ?9 K2 lecho "我爱php2";6 Y( y! p- G) Q' r8 y' c, V0 ~
echo "<br>"; 6 @5 X+ x3 P" _4 ?) |
} 5 U" T* X" e$ R4 V% f" }! K
?> / S( I- G* Z" c* B) m9 a0 l' K
, ~, l5 V6 z+ q' J% A. O1 O
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。, b- `4 |8 Q% C
直接看下面的例子 ! h" m) e& k% o8 o9 |* H7 ^) c
<?php
8 n {8 y J9 G+ `: {if ( $a > $b ) {
& L6 x* r0 I. j( o6 j2 x# lecho "a 比 b 大" ;
% y5 K! P" l- S+ E+ s' g} elseif ( $a == $b ) { ! L) w7 X$ e; M, O1 {& M* ^
echo "a 等于 b" ;
3 D% b3 Q# u, o5 s8 I2 r} else {
/ v6 E* S* @: {echo "a 比 b 小" ;
# ?3 d& I, T7 T4 G} / Q3 n: H# j' D4 N5 s9 N
?>
$ y0 w- U& G4 q$ q
0 n- w2 x/ y; U8 L9 r2 O2、for循环就单纯只有一种,没有变化,它的语法如下
2 ^. T' V" b- _ W( F6 l- h! A" W! Y$ `8 Q& Q7 m( Q6 k, q+ W6 X
for (a; b; c) { statement } : s6 t5 I& A6 p
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
/ N: |4 r3 o- Q( C5 l) Y. I5 t下例是用 for 循环写的的例子。 9 I! j6 f4 N+ N- Y7 @* A
<?php
, A/ E- P9 @, c0 rfor ( $i = 1 ; $i <= 10 ; $i++ ) {
( ^- z, n# Y. M) Techo "这是第".$i."次循环<br>" ;
* X8 m4 d; M' G% H" ~$ }9 f" Y}
( K: F, M$ ] A$ I' ?2 |6 C?>
# W$ k0 L! q+ i& W( }5 E' J
6 ~( U. P1 k7 m% }, h* Q4 P g3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。' ?: r$ C5 [0 w
语法如下:
4 \" H% O ]- [- i( Y$ uswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
( ?' v% N+ M% z" o: }2 i: F% c其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 " | ]' M* `2 g, a& o
2 S8 d% U1 o' E: G9 v8 M<?php 2 ^# {0 E4 c' S- n' q
switch ( date ( "D" )) {
$ R6 B6 e1 d9 |) e) L* e" Gcase "Mon" : # c# _/ l& G5 m$ }$ v1 G! @4 ~
echo "今天星期一" ; ' C7 n- f3 |. G i# j& O
break; 5 z) W' b3 b m* |' ?
case "Tue" : " A s0 B. [" T: s' |( c
echo "今天星期二" ;
# w# a# |2 t9 r1 H& {6 }; y' nbreak; S) r# D: g6 w2 E1 `1 z
case "Wed" :
6 e, k) y& H. H) ~) j& `echo "今天星期三" ;
( Y# t2 d9 J6 T: n. ?$ |" Pbreak;
" W! Q5 }' @9 vcase "Thu" : 4 K& P" @% h; u* u4 j: J) T
echo "今天星期四" ;
# ~+ p) L2 _7 v/ Y5 I6 zbreak;
$ P+ U# L, L5 j* f. J# Ecase "Fri" : & T; |% l1 e$ f: S
echo "今天星期五" ;
/ `4 S; ?4 V, Z2 Z. R0 Zbreak; ' s- @7 p- m2 N* V6 L# S8 O- S
default:
& T4 P; c, q/ {3 O% Hecho "今天放假" ; , ?. e$ S8 v) ^: s3 |
break;
; p) o. q I2 A: L3 m9 d}
}+ R2 x( }5 w( V F?> 9 {9 u* U5 \! b
这里需要注意的是break;别遗漏了,default,省略是可以的。
0 K( w2 ^( A0 d& k很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。2 Q, b/ b% r/ b& m, S% ^6 R
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |