php的流程控制 " J1 z" G) u2 S7 _
$ p( O8 f" C' b
1、if……else 循环有三种结构/ M/ b3 K) Q Z3 i4 P- Q' E
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
% m" w7 `$ Z ?
2 j9 v: S, z5 l' rif (a) { statement }
7 N! M/ W. E7 q6 h其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
0 f7 \1 m; a, S范例:本例省略大括号。
8 e/ p7 D0 {( K3 P% A
# h2 K( h0 g' S3 N5 j<?php c& T0 m. g7 k2 @: m n
if ($a==1) echo "我爱php" ;
/ ~1 a, u: O' t% B# z?>
4 l4 _/ A; x4 E1 G. ^$ I
2 j. n( y( A* X! Y3 W2 J; M这里特别注意的是,判断是否相等是==而不是=。
* ]+ E% [9 t# W7 U0 @3 W范例:本例的执行部分有三行,不可省略大括号。 ' ^" e( ^# o+ C! s. B
( r' D/ R8 s1 E0 H- D
<?php I* X9 ~! ]1 X. R
if ($a==1) { $ S9 ^1 ?# @5 }" V; S" e
echo "我爱php" ;
9 z, r( q- Q7 K/ U8 t8 [echo "<br>" ; ! j& `8 G% l. H& @( o# v$ z
}
- R. F8 R! d9 q* g?> ]% \$ u! d) ~9 O* u4 \
& @6 y& [/ F3 |# O
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
! q, F9 Y! {4 e) k6 K2 F0 }/ J% q3 v! ^2 `, l: [3 S; c
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
' h* ^* P# s0 z B<?php
, M/ f0 m5 H! Rif ($a==1) {
6 t( _/ A, o3 ?6 B; xecho "我爱php1";
" ~; Y- t6 |: Zecho "<br>";
* }8 w6 J% B4 M# Q}
0 d; T5 Y' | h& Helse {
* P1 P; m1 o f/ Y# B2 E F+ ~1 Becho "我爱php2";, |, Z& z' t; U* S$ m0 `7 A
echo "<br>";
' p7 P8 p" C* C3 Y} 5 ]& I+ \# K6 |) f8 _5 Z
?> C$ [5 R' v2 k5 P3 ]/ m
; e% i4 x5 j0 o
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
9 M3 H7 K6 x; }- J直接看下面的例子 6 @! h" y9 m( c' @* I4 b" @# v! P: J
<?php 7 d1 c$ V7 _% ^& [ }
if ( $a > $b ) { ) H3 k9 f- J* T
echo "a 比 b 大" ;
9 k! v6 e" B3 p! G/ \! A} elseif ( $a == $b ) {
) w& ~6 N' }3 P, L: c( S: I* @2 yecho "a 等于 b" ;
! ], i; P$ D7 a" P7 F} else {
# y7 Y! T4 M5 j0 O# ` z$ {2 F7 @echo "a 比 b 小" ;
+ Q. v# U, e: ?0 I: U} ( z) }; n* U3 R6 Z$ Q
?>
! i% d1 N3 z z A: t
) Q0 D+ d& ]' c! O, e" K6 B( F2、for循环就单纯只有一种,没有变化,它的语法如下 ! p: G0 W& q* W
5 q( h& ^0 x6 U5 `for (a; b; c) { statement }
) x4 M# c8 e" ^其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
0 G) S: i* r% c下例是用 for 循环写的的例子。 : d' d- ~" }. r# ~2 f0 l
<?php
" k# G! B$ i* L1 e' ?, j# c6 D+ ]% Vfor ( $i = 1 ; $i <= 10 ; $i++ ) { 2 S1 O. v0 r I) d/ k9 ^; T
echo "这是第".$i."次循环<br>" ; + |$ ^7 b' v4 u& S% c( u7 A
} ( q$ `& A/ {9 r2 z: u* p- i
?>
; Y% G5 a, f" E& B4 p6 c; D$ l2 L" p3 ^; S- r' {& Y
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
4 K+ f% g/ u/ t' k语法如下:
- j2 o8 E4 k1 Fswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
& `( F+ ~) M2 E- c) }, Z其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ) v) l6 ], W" y
8 D, {0 U* n" S) u
<?php 6 d) l3 O5 {! o3 T* x \+ M# d$ J8 u
switch ( date ( "D" )) {
/ {+ q; K: A9 j3 q. b4 B7 ~case "Mon" :
z, G4 M; y1 iecho "今天星期一" ;
! K L- S' D3 b9 f9 x7 Y0 Cbreak; - k9 G* O5 |. ]. `. ? Q( P+ I
case "Tue" :
% ^5 @% p5 p# Necho "今天星期二" ; ( U3 D7 Z" t: ?% g" \! z- Y: T7 O
break;
/ b( P0 J, l; M& P: w5 J8 Z% Lcase "Wed" : % Z8 {% n% D% n" ]. y& z
echo "今天星期三" ;
5 F3 H: h; n" Z" y! W% K3 W# o. fbreak; 7 ]9 M8 b7 |% T$ }! W3 u# t
case "Thu" : 6 n) ?: p. y/ I( b/ i
echo "今天星期四" ; % f* I2 w3 Z( u; |' t, y3 ^
break;
0 D6 z" ^* H# ]' n! Y1 Mcase "Fri" : 7 F: r9 H2 Z' r/ A& M
echo "今天星期五" ;
. E! F) B; `, ubreak;
{* u0 F1 A" G2 I' K8 u+ l5 Xdefault:
' m8 v7 q, ^* U3 Yecho "今天放假" ; ' S* C5 ]/ p& A6 v
break;
1 H* A- |; M6 S5 K}
2 h/ t! s. O! j$ J: n?>
4 |# J1 G$ q7 t; Z$ q; i这里需要注意的是break;别遗漏了,default,省略是可以的。/ |0 K7 S1 C1 c
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。5 _8 H$ ]% `4 H. G6 X+ }
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |