php的流程控制 3 D& D( A8 j. \
, V+ m2 H- {8 }: G3 o) y
1、if……else 循环有三种结构
; U+ `6 F: G; d, {! u第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 3 `5 e! N+ @% \: o, m
' f, @$ G1 L& o- |
if (a) { statement } # ?' g$ ]8 z! |( t
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。0 {* Q$ p# c! b& t$ Q7 O: S' K& t
范例:本例省略大括号。
2 p/ Y9 E+ j- d5 S0 q5 f! T, t6 v7 i7 V6 Y
<?php
; B6 o: F7 x3 i8 eif ($a==1) echo "我爱php" ;
5 B* N% q, k- f2 M6 K?>
/ T. G7 k6 h9 S+ _9 j* I# c; a! ^( k4 [4 ?# I
这里特别注意的是,判断是否相等是==而不是=。+ p# F7 x$ \8 n0 k4 b5 ?
范例:本例的执行部分有三行,不可省略大括号。
* y; ~1 N. C9 f2 Y
% w" |0 q; Y# o0 L<?php
2 j8 y/ d( g/ p; y8 h! Lif ($a==1) {
: u* ~' ~; v- |8 d" S) q3 t) Recho "我爱php" ;
$ o. d) W- i; P: r8 i1 m3 S3 f5 Aecho "<br>" ;
) Q/ Z6 [; Y2 ^" M+ B' l& G} ) }& o5 I7 I( \! J
?> 4 e+ Z$ a$ C- a& D- {
& N' [9 w( d% D8 c第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: ! f5 g- H5 H7 Q+ f0 L! V; ^" t
5 W: ]) I2 b6 yif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
$ V; U$ [) g% ^9 D<?php . Q# H6 A, v4 t+ e) W+ M
if ($a==1) { 2 B0 c. I) u/ b; R Z4 f5 j
echo "我爱php1";
; p" W A% ~" U) V% m8 Becho "<br>";
& d( D7 L4 r4 j} / P2 T; S- G N' E T Z
else {0 e( R" x' q" I# y
echo "我爱php2";
: ~# G% m/ n' X! L& X2 j mecho "<br>"; 9 T0 z; r' h* c
}
# T% f5 P" |7 U M?>
- c+ y7 O4 y, ?7 x, f" c# b) M" X! q. ~
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。5 q( |4 g/ K5 I" R" @ ?
直接看下面的例子
6 ]% S% S( ]1 e5 U7 D5 @$ t<?php * q. U% U; q* a1 s2 s: z
if ( $a > $b ) {
2 }+ v8 n9 |: \echo "a 比 b 大" ;
8 F% Z. e" F& i8 u} elseif ( $a == $b ) { 7 X9 o2 T+ u. I! K' J; i! ~; U
echo "a 等于 b" ; 1 e, H6 J/ e& ~- j9 d
} else { 3 k3 t" y4 [/ C
echo "a 比 b 小" ;
, e' n- C6 R! g: p8 C% b} 2 S6 V0 N# C3 D0 M6 u) _2 | |1 m
?>
, m- c, c6 a' S. Z# ?8 q
; A; E5 |" d$ Y2、for循环就单纯只有一种,没有变化,它的语法如下 # d( V+ m# w% W* L F+ y* D3 m' }: l" K
& e1 v" [8 P* y! n. W) zfor (a; b; c) { statement }
4 b t0 c# a" y! j8 j其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
1 Y; C P ]3 w# S8 X下例是用 for 循环写的的例子。 ( \: C8 x( E4 R
<?php 9 w# K$ D. ]) U$ b
for ( $i = 1 ; $i <= 10 ; $i++ ) {
8 S) |/ P9 {, j) ]echo "这是第".$i."次循环<br>" ; + ?# X' ]6 U6 b( ]
} . y# D4 G' }% m
?> 0 ]2 ]8 h' C: e ]
6 e1 [8 L: b4 W2 _; O5 ?8 F4 e3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。' l: s# @: s0 a/ z4 L
语法如下:
' `8 R8 k0 p( H" c; F5 M& e) y2 o* eswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
. a% S! [( J) J8 f2 M其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 # y$ `; H8 F0 L# y) u8 t
. E! F- D+ k2 k! z<?php q( h( g8 |( n9 l( t" F' p
switch ( date ( "D" )) { $ S' l; h4 ^7 v; e' j
case "Mon" : 0 v7 O4 n* D& e* o! F
echo "今天星期一" ;
3 {. q, T5 P5 @( @break;
1 H$ E) q4 }" q! t+ w9 F; Tcase "Tue" :
- S1 o& e' J6 E( o- o$ @0 Yecho "今天星期二" ; 0 L& ]) l# p0 A/ o7 i
break;
! R8 x! c& v) } \) ncase "Wed" :
% w2 f! N: W, ?3 X! gecho "今天星期三" ; ' e5 u6 |9 W% x. c* ^
break;
2 p" w, g7 Y) q9 n" @8 D# c/ Gcase "Thu" :
$ Y* z& M! y o; X; {. Techo "今天星期四" ; ( P* K6 I: g: r* `6 F
break;
2 f( I+ |5 E- Jcase "Fri" : 7 |' t( `1 F' N9 v( m3 q
echo "今天星期五" ; . u) C# t( e2 Z; q
break;
: |. n; s# c% |* x, ~default:
. ^& y1 C! h0 L# c( Zecho "今天放假" ;
% ]. I1 V; g) [break;
- \& l g* a' G$ i; G! w/ J} + g, k" Q% s1 b0 s% M- m- V
?>
1 c/ b2 h: ` r. U. S这里需要注意的是break;别遗漏了,default,省略是可以的。6 ]; I; Y0 {; ^1 v0 \) C' r
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。/ k3 F( m7 u% E5 \/ i6 d6 J: ]
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |