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

十天学会php之第二天

php的流程控制
' d5 }  h! o: \- B$ @9 g. r/ h9 H4 _4 K2 T0 G
1if……else 循环有三种结构

- w/ C1 k# _. `& w9 C, e" [  t第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 0 _2 z' z! ^$ n& ?7 x
2 H1 y( @  j, s+ y
if (a) { statement }
% h4 P1 H  ]6 R3 y( r: A其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
, C; u9 \( Z5 a5 l, ^
范例:本例省略大括号。

! Y: L' ~) W2 }& Q
3 ^: P+ g& w9 Q. v# E3 q, \* S<?php
& P3 p) y7 I7 A% u1 u0 U2 b' _if ($a==1) echo "我爱
php" ;
4 M3 L) V/ r) F/ w) a4 H6 k?>
& F6 n8 P1 F! R1 L8 i2 l0 B2 I8 D/ n7 i9 ]% I
这里特别注意的是,判断是否相等是==而不是=

& B( U( m' f/ I4 A范例:本例的执行部分有三行,不可省略大括号。

  z# G  o9 x" T1 p! r" [
( o5 L/ F6 E9 O, N<?php 9 p6 i+ i6 k: }0 u: b( F: G$ {* e
if ($a==1) {
9 Q4 F* H0 M2 x( d( |0 recho "我爱
php" ;
: Z# w& O( E# x7 Q  o; t: gecho "<br>" ; ' ^% }. c: J1 d, i  o1 }3 v) v% Y3 Z
}
8 u' u# P6 X  ^8 T+ |# _" R6 h?>
% \  D% t0 U; k  g9 S3 [
. }1 o. Z6 l9 U' u第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
5 S% O. H. ^' |0 N

5 a- K( d1 r9 D$ [& B0 Y2 wif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
( D7 z2 h  E6 k% G
<?php
# q+ f$ p% @1 g3 @! M1 {: k# fif ($a==1) {
6 f4 d7 ^$ W8 lecho "我爱
php1";
( ?+ h" b9 l) o- ?1 G5 T6 yecho "<br>";
& Z1 i: p- @) A  q# t: x}
9 \  N8 B% V# v% I9 B6 z" Pelse {7 o7 R* f# f) P/ r: B" |
echo "我爱
php2";9 i- `0 T+ y! ?6 {3 B
echo "<br>";
$ r# D3 X1 B- L& z- b% [: [0 v} * K0 e( h% [; \+ o
?>
' A+ m/ }; l6 i, ?/ G
9 e1 d# \: g; j4 Q第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
# G6 }' l9 _/ S
直接看下面的例子

) ^) r7 _$ i+ V<?php
0 _5 z, S; \6 g, m/ y+ Cif ( $a > $b ) {
- [6 o/ ]3 F1 b. ~7 J+ xecho "a b
" ; ( f9 ^# k% P, f- Z1 m/ D) ^1 K
} elseif ( $a == $b ) { - G* W, t% R- Q/ [. C' f# P
echo "a 等于
b" ;   c$ _- k8 o% H; R
} else { ) N5 z, S* E9 r0 {; {
echo "a b
" ; + T" i; q+ d( A4 v) g7 u  B4 w0 f9 j
}
8 O, V! O  O! k3 Z$ X( u& \% g?>
, a0 G3 m+ b5 {" {7 U) ~( S, e/ L. W' l4 o/ _# ]$ ]0 @# p
2for循环就单纯只有一种,没有变化,它的语法如下

4 G0 N3 a% k! \+ ~( d. [% \' C: D
" D) {7 X; M) u# c: K; p( y0 X4 c! ufor (a; b; c) { statement }
3 S; k9 K7 @0 ^/ [: s1 y其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
# [' l1 J6 g* m5 l. }8 c; j1 b
下例是用 for 循环写的的例子。

8 u" A* G) K9 j/ e6 X<?php 4 u3 W) d% D  V% n  i
for ( $i = 1 ; $i <= 10 ; $i++ ) {
3 E/ D; m2 m& M0 \: o& g$ zecho "这是第".$i."次循环
<br>" ; $ t& L! t4 `" h0 _. p# e
}
* r& Z! p1 w8 N0 P8 h! |" z6 _?> 2 b( _; u! r8 b8 |% P

; Y$ \3 y0 X2 h% F5 p& H3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
: X6 a! j! K: P" m% f  Q; f( a! y6 f
语法如下:
! O' F: p/ R  i% w4 j$ jswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
2 `5 ]+ f+ W! R( ^$ q
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 $ R) c( j/ e9 Y+ t

  x. v0 W  k" f8 Z5 q<?php
3 H& [% M# ?, Z0 B9 hswitch ( date ( "D" )) {
2 J0 {- K( W/ N  |5 D" }1 ^9 G6 Y" }case "Mon" : 2 H* X8 x2 b. W2 |
echo "今天星期一
" ;
" V/ M: D/ G6 l% Hbreak;
% R6 c- e5 Y! L+ v" {9 Y7 p) y! Ccase "Tue" : ! M% m/ m; F2 M: ?/ e) H3 R
echo "今天星期二
" ; . u+ o% }/ o4 `; [7 O6 \7 u7 O
break;
! o" U6 v3 T! q& Z. A' |( Mcase "Wed" :
7 N8 {4 S; l. l  z! Yecho "今天星期三
" ;
6 I+ [9 H3 q; B# gbreak;
( o( L& C& f) ecase "Thu" :
0 f5 f4 U# y1 b. y; O4 kecho "今天星期四
" ;
8 ^  F7 ?+ M: G+ t4 Tbreak; 1 E# H1 G: K" }" f% C# ^
case "Fri" : : O3 p" n, S. g1 d
echo "今天星期五
" ;
: ^( [% j  ^# r- g* Lbreak; # m( K7 P6 o/ N1 R4 d
default:
# ~, U. T2 X: x/ @/ Cecho "今天放假
" ;
  F7 r6 Y* y: R" f. [break; / ]+ V: Z' e! p0 x" H
} 2 {; t; t& P9 G; z0 }$ G
?>
2 `" y' a; G/ y# j这里需要注意的是break;别遗漏了,default,省略是可以的。

8 X" d( K7 Q  b9 o' f) ^  s' I很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
! U) c; a: t( D
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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