获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第二天

php的流程控制 6 B2 x# \  u' C& T

( b8 N/ n0 U, R4 K1if……else 循环有三种结构

! j/ B' G% n& c7 ~: f* F3 ~* e第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
3 f9 F8 E$ q2 ~& O
" a5 e9 g2 U/ \) E, m! yif (a) { statement } 2 m% X! `3 F4 ]  U' e4 A
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
" D1 @% Y7 m) k7 x
范例:本例省略大括号。

1 Q5 E  R% M# _7 m5 g. q' z* ?! F7 i+ [3 p# D: ]
<?php
: `$ Z8 m; @* w7 |% Oif ($a==1) echo "我爱
php" ;
- M' V* k3 v8 G1 B- d  i, p?>
- d, _% V  z9 z" x5 h7 R
* |: _  t) U6 y! E/ ^这里特别注意的是,判断是否相等是==而不是=
' m  N- r% Q; P9 c+ V
范例:本例的执行部分有三行,不可省略大括号。

3 t0 ~9 {3 q! d$ W* |. P- G8 m- o) m& e$ Y) b! ?! Z
<?php
/ u2 P% l1 V4 @' H# S  iif ($a==1) { ' \1 w2 B, h: z8 U$ }8 I1 o8 T7 |
echo "我爱
php" ; " ^4 c& b& I& y. }' y& l5 {; u
echo "<br>" ;
0 ~/ C( g/ A& N, `, X}
$ G1 v3 M- K5 Z: f?> / v2 c4 e' e& }+ t: _
2 ]+ _5 m% C. e5 k
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

9 T  Y0 O5 Y; Z: A$ i1 Z2 ]
+ P6 ?# d; g4 H* r' Pif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
$ p: g: c/ ]& r! m* ^, I
<?php
4 y/ b4 _% G6 R' g9 Q( Fif ($a==1) { / [- I; z: d3 h7 A! \2 ^( E
echo "我爱
php1";
" G7 T) X9 @# m! @1 o0 iecho "<br>";
* X1 m1 k8 S8 h( Y}
+ I/ ~0 c, g, D2 D; E5 l! Pelse {4 K3 E* w2 M' X4 Q) u* E5 ~
echo "我爱
php2";! G+ U6 X. c( B+ B& K5 Y9 H
echo "<br>";
& {8 Y3 l7 p* L! l9 Z' U} 3 p& J7 x5 T6 P! v! L+ E* @. ?" P9 Z& x
?> ! t, Y* i/ J. Z8 A

1 ^# {( [' ^8 ^( g第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
5 L! t' p8 _0 ]& `
直接看下面的例子
- n1 l  e" b0 S+ n# j: W8 m
<?php : M/ e+ Q0 ^- `: Y: L
if ( $a > $b ) {
8 ]0 I- V! E! ~" }echo "a b
" ;
' G% i6 K( s- A} elseif ( $a == $b ) {
: q# Z, ^. N6 d4 `' |" y' A, techo "a 等于
b" ; 0 l5 ~5 E: H$ Q  B
} else {
; o9 u3 H( S: O& Iecho "a b
" ; # N! E  U7 `* {
}
  i( Y4 G/ Z; ^. ]( [?>
$ `1 M/ t( n5 y- e( F5 V
. o/ x: t; M8 `3 k* N! Z* W2for循环就单纯只有一种,没有变化,它的语法如下
. Z. k" @' \4 w5 R7 ~+ ^3 E' K

, f; h0 d( h( u. d+ E( Hfor (a; b; c) { statement }
. N3 U, }+ O' x: N1 j& l其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

# U5 |! j& Q% s: ~% ?! P& P下例是用 for 循环写的的例子。
; `! I3 i: k* P. L- w+ ?' F
<?php . Y( O+ E, q3 w4 T0 ~
for ( $i = 1 ; $i <= 10 ; $i++ ) { : \3 z0 U+ m% c4 V! U3 B& o) J! L
echo "这是第".$i."次循环
<br>" ;
; N# c9 F# [. \2 L- G8 d$ L}
  ]3 w8 H6 J& X4 I9 ~9 D: t! ^?> % C1 @% r! \4 g3 _% p  P7 Y+ n5 i' l

2 C8 T0 _( f; q$ a! f% H3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
. O0 j" v. o% _4 r# N: A6 l
语法如下:
4 K# Y$ y, d9 D! L3 e/ Iswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
5 z. x; Z7 ~. a7 ~' [* `
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
( G& X  M8 ?" c. ^2 \! S8 I5 P& y
<?php
- B3 |, {! o1 ]- c% j; a0 l  D/ }switch ( date ( "D" )) { ) L  o% p5 x3 j6 N4 J( Y* B
case "Mon" : ; C: k7 C5 D: d+ m% _0 E$ j- ~" h
echo "今天星期一
" ;
( [/ ?) y& P, U# G( Pbreak; , ]! q0 I$ ]; _3 J4 o
case "Tue" :
: X3 G0 G8 d2 u8 Hecho "今天星期二
" ;
+ y& c: h& s- d- @8 ebreak; 1 |4 f3 M- e$ C* ?; X$ u4 g, b
case "Wed" : ) X- ?7 _% {, P6 k  ?* g* B
echo "今天星期三
" ; $ z. t3 H8 P: K: s9 q/ \* C; u( ^
break; 8 R, N0 Q8 x  [2 ~+ i+ b8 J
case "Thu" : 8 F' H9 Y. J0 T
echo "今天星期四
" ;
, r5 x( ?9 `) \  k# nbreak;
3 z7 n; z+ L/ X' }& Z. [: }case "Fri" : * G3 t" E1 [- U) x5 b
echo "今天星期五
" ; - w* |% k  V* K. S' B! g
break;
( a( W& `, U$ w+ \5 h+ |default: 8 F6 H( Y8 H: ?" ?' r
echo "今天放假
" ;
/ w" d0 K2 W* V1 F8 K& X, {break; " ~5 j3 M. v- p: W. t/ n
}
4 Z. k+ m4 B. ]: B, E/ ~4 R?>
* _! a) f% }) {" }3 e这里需要注意的是break;别遗漏了,default,省略是可以的。
, X& Q& V6 w7 J# ]' p% h  I2 E
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

) {, H+ q8 z; ~6 r十天学会php之第二天就说到这里,第三天开始说数据库的使用。

返回列表
【捌玖网络】已经运行: