php的流程控制
' }8 I: n* M: r% ^% \- x/ p7 `6 y9 k# R( \, `% S9 e: @
1、if……else 循环有三种结构
& P; i0 y s7 j第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
4 w9 ~3 K% {4 Y) f o6 g" L* Q4 ?# e# M: k
if (a) { statement }
) h$ x- Q( m d4 p3 z& B# m5 N其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。: _& g" l! `0 U2 K1 o
范例:本例省略大括号。
- p2 }. q T* d8 ^; P) w" P6 c
$ U' W" R; ?- Y/ L% n# A7 v& N2 K<?php
, w% k: w$ g2 Dif ($a==1) echo "我爱php" ;
9 z5 Q3 Z8 C A2 L?> & i) A7 \6 @7 g" {$ k
5 d5 j' p9 Q: c9 I! G
这里特别注意的是,判断是否相等是==而不是=。: }5 |; ]$ B1 w5 q* Y- h
范例:本例的执行部分有三行,不可省略大括号。 9 s$ W6 F; V! L* T4 \# e. @
4 |# f% S U9 k! I5 i7 J
<?php : h* P# `- [. A! M3 U$ C, o: ]
if ($a==1) {
! r/ w6 V# T" P( Y! necho "我爱php" ;
* Y K; n; E- cecho "<br>" ; 5 A7 A3 U8 Q: J: j. \ v
} 0 Z# c5 l7 [0 m( Y
?>
) u# ~3 i! I( Y: }6 O& e" s0 V
, Q" m8 Z3 P4 u7 v# |. {2 B第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
( d I2 H7 a. ?; \- M0 e
4 K9 F) H8 [6 f/ u6 hif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 $ ]! R4 @5 q% S1 a! |+ z$ Z, ?
<?php 9 @/ w# T% ^7 N: E) j
if ($a==1) {
}2 \- x/ k/ q4 |echo "我爱php1"; # Z& D0 p9 P8 @* c' K4 r7 a- K
echo "<br>";
! d# j' @2 \$ E8 C9 G' g}
: r+ @$ F; J3 V2 Z, Welse {
, k" L1 I0 f' [echo "我爱php2"; a8 l/ U% j* @' c5 h
echo "<br>";
7 s! ] R% P: m# S% s Y' b} " G: V* u7 r- |* {( O' d0 W
?> 6 {& t0 `" n1 J: g- T4 G
1 H0 N9 C7 O; O' q2 V7 B) K
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
& N0 T6 ^2 n& b$ ?( h9 m- |$ t直接看下面的例子
% \2 P g! J/ P9 s" ^+ l: ]/ M<?php ) j. g7 P' E" m$ C) Y' X, |
if ( $a > $b ) {
H4 [0 `6 v, e$ ~' ^ U# Uecho "a 比 b 大" ;
: v0 a; {$ y: a/ G& E8 u% G} elseif ( $a == $b ) {
' L' c6 E1 L @1 I2 Becho "a 等于 b" ;
: x/ _9 p/ q' K {5 ~3 r5 r1 t* j. Z} else { ( v( C/ ^* s" b- A7 g
echo "a 比 b 小" ;
) Q/ ]" o! [! z" ?; a} ; H7 i# g# Q% ]$ x: s% ?
?> ! T* Z$ C' i6 g" N3 H
" o! \( a A. \0 W6 [2、for循环就单纯只有一种,没有变化,它的语法如下 0 M8 m& \- M9 `/ s) x
% k' h$ S& V. ?. Pfor (a; b; c) { statement }
5 I" }; B [0 g* m6 ?7 H其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。7 @ A+ r o# f! \4 Y$ X) v
下例是用 for 循环写的的例子。 * S7 e Q2 y, o, r: }( A3 L
<?php 2 t) M0 w( e8 l; e
for ( $i = 1 ; $i <= 10 ; $i++ ) { # O6 M$ y& x0 M6 Y( q) N& ^
echo "这是第".$i."次循环<br>" ; : N- z/ J$ }6 `: P) N. O0 N) n
}
2 d$ o, D5 A i0 ^* K& c9 n?>
" R/ ~. d! @9 p, k4 S. ?; q8 r! [( i% |) c
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。8 ` M6 |. M" o4 N9 O$ @
语法如下:
) K- @% q% H, O7 h6 o& bswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
/ V$ [4 h5 H. F+ ^其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 & E% O3 W. S: [! e7 f
3 u, D, U* l! D: l) v" Z; f" t
<?php : b% ^/ Q3 V% e5 ]5 Y, Z
switch ( date ( "D" )) {
; D' A, G; @/ m- b! V; l0 scase "Mon" : 3 E4 X) j% M H, X4 `2 x
echo "今天星期一" ;
; @6 i5 H0 W$ [6 W7 Bbreak;
) x6 u. p# c) B! z( d- f" a) |case "Tue" :
; d K) L$ z. w7 p7 p) }. H+ jecho "今天星期二" ;
6 ]; S8 S- N9 A3 Abreak; , N( K0 n# f8 e" d6 }, v$ H8 W
case "Wed" : . v& n1 k: s: L1 y R
echo "今天星期三" ;
6 y8 c& g1 j3 r; q6 ^break;
' d* ~5 P- c" {+ j t! E) [7 \case "Thu" :
0 M F" i3 n+ `3 @echo "今天星期四" ; & \0 n; a9 A+ c* |
break; 7 w; t1 G% [8 i2 ^
case "Fri" :
* T. @$ L7 t7 u5 O& Mecho "今天星期五" ; 6 A& i% T0 m$ ?9 n0 l* ]1 i
break; : o8 d1 m7 c/ Z7 {" A7 N
default: + J' y* D$ S4 r! Z1 b$ I8 N
echo "今天放假" ;
' `9 e$ `, }# X5 m, f1 ~/ Fbreak;
4 a( I& W" G v3 A: a( Q8 _}
/ W9 x: e0 P# x) H# n+ G$ r?> 7 s8 j. @7 K d& D# m! O" t. A3 ^
这里需要注意的是break;别遗漏了,default,省略是可以的。% r* f Y7 F3 t; P& ~- A
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。3 J# p0 f) O0 o* K6 @
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |