Board logo

标题: 十天学会php之第二天 [打印本页]

作者: admin    时间: 2008-3-26 16:36     标题: 十天学会php之第二天

php的流程控制 8 z# s! r; B2 a: z, |. Q

% U% J( M8 f$ u/ s* l( K1if……else 循环有三种结构
! d) Y' U3 Z3 `6 x# V+ s, r
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ; E7 q5 V/ ]( w9 z/ D
) l( s6 p6 T3 c3 K1 p/ C* v8 ^/ P& I
if (a) { statement }
1 ~9 K' V! t* n+ S7 ~) j其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

( s% _: n  [3 Y+ b) n- |+ g范例:本例省略大括号。

3 r, }1 C  t8 h, U+ P9 U( `9 L& F' h4 ]9 y! h
<?php
: B( N6 Y4 |/ `5 N. Y7 l% vif ($a==1) echo "我爱
php" ; % }# i4 m& k( C$ y7 j3 u
?> 3 a2 M* C' x3 }

' s5 L3 w" \& c6 c8 o这里特别注意的是,判断是否相等是==而不是=

7 E, T; c0 u  s  L, H4 v+ u范例:本例的执行部分有三行,不可省略大括号。

4 y: V4 N4 m$ L" m- j' e$ l# V
2 U. G# H8 g6 S) _6 B9 }: v& b6 L<?php
/ M' `0 R- _9 }4 Y; ^if ($a==1) {
+ w6 K3 R, \7 uecho "我爱
php" ;
$ ]4 Z8 L4 X: |# |6 C# m9 Zecho "<br>" ; ) W) u. K, Q- v  ~
} ' ~3 W4 s+ t' j4 @5 {! s% u
?> 1 Q1 V" D1 ?4 \  G; p

! E* [' b/ h1 z! `第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
) X; ~  B/ f: U# l0 s
, L2 V( p' w- @2 B/ c4 O4 a; `' x
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
% ?+ d9 R$ b- Z6 R, _& r
<?php / L9 F5 b4 \; V. g7 X# M
if ($a==1) { . z+ i# b9 r3 c* A; S7 ?1 ~
echo "我爱
php1"; % k) {2 X$ I9 f
echo "<br>";. f9 ?6 g/ |% F1 v% X
} ( L+ t% _+ y) r) `/ H. X. X
else {" p+ ^  L) D  u# s* s8 a
echo "我爱
php2";& p- X8 _+ @' k0 h: F0 ]1 `1 k1 Q2 n5 \
echo "<br>"; . Z9 s# T. w! K# P- u7 O8 J4 @/ t
}
, N9 O" p+ Q7 h7 i" G' s?>
1 u1 f3 D. o  n$ S# ^, @  [  ~, m4 H. e9 o# U& Q5 P% j& ^6 V
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

& G3 W& v( c% g5 P6 e1 r. i5 }# c直接看下面的例子
( S) I7 @) {( y
<?php
) N5 b# H, c  Rif ( $a > $b ) { 5 S9 i8 R- y* m  o
echo "a b
" ;
, j$ H5 V) C7 k/ r% i% U} elseif ( $a == $b ) { 8 d# E. G# S/ f$ N: i. l6 }
echo "a 等于
b" ;
% {! b3 w% y. h! m+ p% \3 V} else {
( V! j) H4 ~" ?0 wecho "a b
" ;
5 S! @( f- Z( m& u2 e3 X% F} ; t) R" p1 `2 M) d( d. E0 G
?>
6 P5 {! A3 _( H) u6 w+ ^' K
2 t5 P5 B7 E9 A4 Z7 f1 K8 n$ N2for循环就单纯只有一种,没有变化,它的语法如下
* j2 i+ b! b, w/ v8 d, C& \0 m
# E& U8 b& p! t% A: H' W
for (a; b; c) { statement }
/ D' H, c* h! k! d, g% Z其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
* c. b" u4 r6 V: E' h8 r8 e
下例是用 for 循环写的的例子。

3 H0 L, ^) P! b& S0 e<?php - @/ `: N4 X! S# j; m
for ( $i = 1 ; $i <= 10 ; $i++ ) {
# Q/ r7 M" p7 `9 s) o3 Jecho "这是第".$i."次循环
<br>" ;
+ ^& @: H' _. E: e: U} 1 ]0 {! |7 u* x
?>
% f; h$ H- U$ Q7 g* S7 R) x9 A4 \! I9 B7 L4 [9 d
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
" P9 j! Z' {" s) p! r5 O
语法如下:
, X- I( k5 m( Wswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
: R& Z2 v; W, t# H6 L
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 * _+ b$ p/ l7 b

5 a7 D  E4 h5 W9 w. g6 h% g<?php # p: d- Y$ J$ H5 ?; ?
switch ( date ( "D" )) {
% w6 `" Z7 O2 o0 }5 j& T1 gcase "Mon" :
3 ?% V" n5 O1 m  O3 }% z! ^echo "今天星期一
" ; 8 @8 r) P. Y5 \5 ~: o
break;
/ J: j4 M% f5 A7 q+ I! acase "Tue" :
0 `/ L% G4 o- m- Z( Kecho "今天星期二
" ;
- U' U5 I' |) A  d! o  obreak; 2 j3 G- k) X: }+ I0 B
case "Wed" : / Q9 M( x( N8 @# j) V
echo "今天星期三
" ; , V+ u1 G6 @8 N$ o$ w4 H
break; 9 y# T; P9 b# K3 X
case "Thu" : 7 b7 l# {& E5 e' W; K% W" C
echo "今天星期四
" ; 3 b+ t. J) P2 f/ B* L, h. P5 ~  q0 Q) C
break; 7 n7 W6 Q& ^* g6 X/ Z2 f
case "Fri" : 9 g0 X3 h% {* |6 [2 h7 @  W4 ^' C
echo "今天星期五
" ; % Y) ^6 j: Q/ x( D5 s2 {1 [9 X8 R
break;
/ q6 w+ _; y0 m% e1 vdefault:
  w8 s/ e, K  _5 mecho "今天放假
" ; + z; [. v$ }; `- P# H6 x; M! r* m
break; 8 ~8 C) N! ]; q6 s" j
}
& S, A8 e8 h0 ]0 P( I?>
' w  k& {4 e7 \这里需要注意的是break;别遗漏了,default,省略是可以的。

2 x4 a6 ]  i# N: z* N4 t% o6 o很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

/ N3 p; s) x! x7 X5 o3 n4 Q十天学会php之第二天就说到这里,第三天开始说数据库的使用。






欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2