php的流程控制 , F3 f$ c/ Q' `: k, Z
! \$ p; V& w( H3 C1、if……else 循环有三种结构
8 r5 X! ?; e5 f; p, Y+ B5 z9 c第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: - W9 O# f. G, `- ~- e( A
- o# X3 W2 q/ F: |if (a) { statement } 5 f$ g2 m: W7 p
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
1 F6 K( w. g/ h/ _范例:本例省略大括号。
6 V+ U* X( {1 M3 w
. L$ a' |7 J. d' I( X<?php
: j1 C8 E( s/ [# Q3 c& Dif ($a==1) echo "我爱php" ; 7 m, I0 T# Q* C2 W
?> ! o( {' U. |9 E. S
" e9 b' s; X; s; W% X! m
这里特别注意的是,判断是否相等是==而不是=。
- T! Y. H" }) M范例:本例的执行部分有三行,不可省略大括号。
# j2 x+ ?$ w1 T$ U: d* P
4 i @& b( j4 x' i D2 }2 ^<?php 8 k; y$ B( l4 n) C# i
if ($a==1) {
/ h& G. [( |$ [! Y2 y! Z$ p) I zecho "我爱php" ;
9 n. X/ z) \+ n9 p. Jecho "<br>" ;
4 I- ~$ f' ^3 p1 \/ g' Z} + j. b& m9 ~: P$ Q
?>
$ |0 Y' Q) j3 C: }- I
7 K m# A1 ?- v0 F: T9 Q) @7 G" F第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
% w& e ?3 z6 J! e! y4 X, ?
; ?8 d# g: L" d4 ^if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
+ n' w; x0 o+ b: L<?php
' G- a( F0 x; u6 J4 Y) Sif ($a==1) { 2 W v$ T3 j5 c
echo "我爱php1"; / t% ]$ o( C2 }3 R8 h/ K
echo "<br>";
% h# P# v1 h. J! L3 Q* E; u} ' ~0 [$ H; @& \
else {
7 L1 G8 I0 @$ Y% |echo "我爱php2";
8 b7 b9 B: g) ~4 v/ X) `echo "<br>";
2 e' e5 g& q+ T& i$ Y+ B; Y} 5 u+ r9 b8 }2 x/ {& a2 V+ U
?> 3 J' _' B& `/ _. Y' l: \
6 I6 N# [3 O: u6 I
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
; z, N; O% }- R8 n; ~直接看下面的例子 8 V3 p" e( J1 h* b8 f/ c4 r# G: R
<?php 5 r7 c( d1 O9 [1 Z
if ( $a > $b ) { , x1 r" C, I3 R1 c9 X* i* k
echo "a 比 b 大" ;
. D% f! L! M; D; Y( K. f% O$ E} elseif ( $a == $b ) { . K, g0 k0 N6 C8 E7 N7 N; I/ l) R
echo "a 等于 b" ; + @ K2 j8 K% \0 O6 E9 ?3 e
} else {
0 \( i( d6 t9 c6 [, mecho "a 比 b 小" ;
7 Q) {7 U4 e% U* P6 j1 J}
; [$ J( r# W8 a* X2 Y* u& {?>
U$ H# W! _4 q& W* O
( c1 a3 [, T' b6 |. U2、for循环就单纯只有一种,没有变化,它的语法如下
3 T9 @+ Y$ V4 B I( T) m, T3 U- Y h, ]# u
for (a; b; c) { statement } 4 H7 [, u4 ?8 Q' _) Y w
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
0 l" w6 k7 r. G R) H7 V2 z+ l下例是用 for 循环写的的例子。 , ~0 @. p5 `! u4 _
<?php 5 z6 Q: M" e) {9 m
for ( $i = 1 ; $i <= 10 ; $i++ ) { 7 n" w2 ?0 L* `; A$ G# t+ x
echo "这是第".$i."次循环<br>" ; - C, o) R# j& w
} ! F( T2 n3 p1 m. [
?> 5 A3 w3 c% \- M# @
1 L) S. P5 V" o8 D/ h
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。- t% w( ?/ T5 t: }
语法如下:
8 g9 ?' i. q0 {+ Oswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
$ C' I: G+ M. U3 E/ y( t其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
6 P+ b+ l# B) H( ^
' g' @" b3 N# W1 B0 c/ N<?php
- c5 Z) c8 l# b4 J$ x9 B) rswitch ( date ( "D" )) { " C/ }+ g$ C! S& t/ M2 W
case "Mon" : + i+ d5 ^/ `6 G& r$ p
echo "今天星期一" ;
. u5 h2 O# x( t. |' m5 I, y4 hbreak;
2 Z6 Q A( N9 S9 R. h! G7 ?case "Tue" :
6 H1 T% R& B" f* O1 u* Hecho "今天星期二" ; & y: J2 M1 P2 U5 b% I0 i! U: a4 g
break;
7 S: j1 ]: r6 o: Icase "Wed" :
( i- N( x2 ? i8 O* |7 A2 f. uecho "今天星期三" ;
! P4 \- m6 q0 f) F2 o* K1 F9 ?break;
' |+ Y& ?3 ?( a8 o9 Gcase "Thu" :
; P9 N" r6 L t1 m, X% Iecho "今天星期四" ; : e- p- p( H* y6 j; w
break;
8 D9 U3 U0 |0 ~' \. w0 ucase "Fri" : 4 s9 d& T( V% l
echo "今天星期五" ;
% B4 R8 K, a4 C5 c* ^break;
! m1 M+ B! n7 a4 r! v1 f& a8 I: kdefault:
# n/ E, s* w. S* s" ~9 r" n9 ~echo "今天放假" ;
; B8 x+ t' |% D1 Z0 K3 Ybreak;
5 ?3 O( ~1 t% D7 W}
, I9 |4 ]: v9 A) W* L3 Y, S?> 5 I3 I* A( e" c4 g
这里需要注意的是break;别遗漏了,default,省略是可以的。
0 ~ J$ r/ C5 e7 t9 k- A8 h" W很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
( K! x! A- ^# ^4 ?% Z十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |