php的流程控制
$ P# Y) J b0 o/ M- Q! {9 |! Y* T2 w; H
1、if……else 循环有三种结构
t. d. \( F. _6 Z第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 7 Y2 r, a( L4 e2 J" [- q5 {. O: G
! ]/ Q- @, ` h$ |( ?2 \
if (a) { statement } , o4 {& F& F1 ?$ m, V; f( N
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。$ m% \4 j- d2 y
范例:本例省略大括号。
! g7 U! o. R& g4 d! K8 }# |
0 y( M. C; c3 {0 u/ F; C* H$ W5 A<?php
; j+ ]: j) r% u& ?if ($a==1) echo "我爱php" ;
8 a8 Z& l$ q& `+ ~" o5 n?>
5 q' n: E" e+ _- j& s: h
4 M! K7 R* { ]# Z1 @+ h; Q这里特别注意的是,判断是否相等是==而不是=。
# l. b6 }1 K5 }1 h5 Y# p* }范例:本例的执行部分有三行,不可省略大括号。
6 s3 |% O1 l9 ]- T: W: n5 f! c9 i$ E5 ?
<?php
' @% ^. K$ @; K1 dif ($a==1) { + A1 {. |! s/ i; H# Y2 M2 Y
echo "我爱php" ;
' n* v8 G; a; j% Wecho "<br>" ;
, n8 M# Y1 ^+ r# Q- q} ! p0 H% `. c/ @5 i
?> " `/ o- H3 p) O( O8 X& B2 u$ a
5 ^) s: C8 `0 v; ]
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
& l8 y* r. D2 c( Y1 f% t& Y7 e8 E; i) c3 B# a: T
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
& z7 U7 d- a1 ^<?php 3 \: ]; [9 l% Y8 i& Z
if ($a==1) { 6 K% R5 Q5 U7 N
echo "我爱php1";
$ o7 D) ?* o1 k: h- V3 G- M3 Uecho "<br>";
* P( _( n, h* {" |} + }% N. l! J+ L. l2 D
else {
* n) p6 S9 p; m9 ~# j9 M* W4 xecho "我爱php2";
3 \ ~! m, R; c0 _, W$ A- q1 }echo "<br>"; 6 w; F, @$ S/ E% q( @$ p
}
$ L# [4 A# `5 I9 Y8 k. S?> & k! p c& b7 c) }+ Y
' o5 O6 C) L4 i/ v) W. h$ q第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
9 |% o, q& z" }! u" \5 a6 k直接看下面的例子
5 O d: H2 A6 |, g! K, ~# ]<?php + k1 C, i' A3 A2 q. Z& F: {* R6 J
if ( $a > $b ) { ! b: r9 c& y1 Q" V% G3 z ?* b
echo "a 比 b 大" ;
5 \2 j5 o* W& d# R r+ U! y} elseif ( $a == $b ) { * T9 ]# e" J! A
echo "a 等于 b" ; ; Z: J K: z4 z! E; a/ \9 [
} else { ( K" C% b* G0 s* z; s0 k
echo "a 比 b 小" ;
( u' u. t$ i! Z. ]}
* p3 v8 f4 x: w?> : f9 }, Z; q( z7 b b. k% I7 [5 e
2 q! N; u; `+ E$ h" {8 \
2、for循环就单纯只有一种,没有变化,它的语法如下
. n# [& l9 ~- Y R. K: C8 X9 l' `5 N7 [; e% Z+ o. e
for (a; b; c) { statement } . z% l0 `1 v {/ M5 I! {
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
: R9 Z% U | H; x下例是用 for 循环写的的例子。
6 ~! \4 B1 i9 ~7 y- w4 C<?php 1 B/ C) R: R+ l% Z; x: a
for ( $i = 1 ; $i <= 10 ; $i++ ) {
) ]9 ]: Y) W3 F/ E* secho "这是第".$i."次循环<br>" ; 5 b' N! y& X' n
}
7 G3 C, x% x9 Q?> l2 l6 ?1 C$ [6 f
* k) F8 F+ j0 Y' \
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。4 ~# J* k! O5 T6 B4 e% v& S
语法如下:
], e; ?1 @6 Hswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
; K2 z+ @1 L2 N- W8 r" c3 q其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
5 n+ W" W. w4 P6 Q t( i. f- V
( b! M5 F0 b, Q4 {<?php ! ~) {# |* v( h9 @
switch ( date ( "D" )) {
' D) C. b; f# K0 ]8 Ucase "Mon" :
7 W) Q1 m6 a, i6 u) \# aecho "今天星期一" ;
# X7 O' S2 w- A* i0 y5 R9 | U- n1 sbreak; ! e- W# {! g8 C( }* ?8 p) t( a& L
case "Tue" :
! u) S. Z4 E! t M6 I( Uecho "今天星期二" ;
/ t- e' n' [. Ibreak; : d( M, L. ?! ^$ E5 {
case "Wed" : , i6 R6 }$ V* |0 `2 x2 A1 v+ |
echo "今天星期三" ; 2 j8 v$ Z4 r+ G% w+ o2 Q1 K
break; 8 z, H% e$ v; p; q& D2 L# J( A
case "Thu" :
6 j$ g4 j6 j$ z: Jecho "今天星期四" ;
& e" M( p/ n1 ?break;
o2 t& l: M: Z9 P& {case "Fri" : , m' ]. D6 L" {$ l' F" Z
echo "今天星期五" ; % A V0 V& J1 Z3 l6 @" W, v
break; 7 F; Z- K1 S5 k2 D6 H
default: % D# d. E& A+ c7 D8 Z
echo "今天放假" ;
4 q2 x- m4 P! e, Abreak;
' ^* y2 v9 D! g9 n5 @7 s$ u}
* J6 }$ v" k% e8 J7 |* Y6 r- p?> ( p7 Q# C; `. ~: v) ~
这里需要注意的是break;别遗漏了,default,省略是可以的。/ I! t& b8 Q, h& s' y% c# V% G1 v
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。3 S) ?- R7 @& |4 z- b `5 B: J3 w
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |