返回列表 发帖

十天学会php之第二天

php的流程控制
5 \. e0 B) R7 _/ R/ [/ w0 i/ k0 o1 g  S
1if……else 循环有三种结构
) [# p3 w# W# f9 c* ^) j
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
; z9 u7 ~, i* C
, M. M! |3 r- {$ cif (a) { statement }
6 x2 D# a; d' X, }/ U! t: u其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

, g, Y/ u6 h; C' l: S$ f) a: x. w范例:本例省略大括号。

! c0 e* J' Z' s1 Z
: [/ K5 a" c' V6 |8 |" V* I& }<?php
' H  H  N5 F! @if ($a==1) echo "我爱
php" ;
4 t- B. b" H6 B?>
2 Y, ~' ^2 g7 A' k7 e0 a/ k/ s- [2 ?2 B& O2 y/ i- Z+ V* D/ i
这里特别注意的是,判断是否相等是==而不是=

' k6 G, @% _, z1 i  a范例:本例的执行部分有三行,不可省略大括号。

% r. f: Z% h8 e' {4 b# `5 S' b5 c8 X4 r( ]3 x* l: M+ z8 F2 p
<?php
1 [: {$ h2 m  Iif ($a==1) { , h, }- c& M2 q( b3 ^2 W. \
echo "我爱
php" ; & n( S* V9 W9 R7 d
echo "<br>" ; " o: ?; _  H; a7 W
}
: c4 a* K+ z0 O5 k3 ~2 A?>
+ K. K' ^/ [: b5 l* ]1 H8 N/ e( q: P" Y
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
( N0 n6 h+ m  \2 }8 T6 @+ ]
' ?4 d6 y; \! w9 H/ L! p2 m+ ~
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

$ d3 z5 N( A! x1 T- f" @0 [3 R<?php
" {' q: W" p1 K# w2 p. M! w3 ~: Mif ($a==1) {
" W/ h* K$ E5 N1 Vecho "我爱
php1"; 0 Q( W( B6 q. U+ }3 v% U2 |
echo "<br>";7 e$ s# ~) ]( N) a9 d1 `( f
}
9 i4 c7 c+ T  E* Delse {' k, ]. I, X5 S+ b0 P, o* {& A( n/ }
echo "我爱
php2";
8 `( a) {5 V& k5 Pecho "<br>"; * z+ A/ @$ f) h5 H. B# @7 R
}
) J+ y  r/ F' Z8 S/ a! l8 k?> ( N8 @  S& J! Y& t

- }/ U& l1 x/ M第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

2 ^! W3 L+ D8 s) J  F' }% N% I直接看下面的例子

+ E5 H& {4 ~( U3 _3 D<?php
- }" R) D7 S2 Uif ( $a > $b ) {
1 U: A# I0 m& V" u1 Jecho "a b
" ;
; [8 A. f! G3 n9 m6 [3 _5 e} elseif ( $a == $b ) { 9 J) d( L' n) D5 ?/ r
echo "a 等于
b" ; 8 |* c' ^2 j( `& t/ {4 _
} else {
- o  R8 G. S( ^/ ^echo "a b
" ; / V5 [# M& T( |$ M7 Y
}
5 {. C1 G  m! j3 ^6 F6 ]?>
' C- s  n1 ]$ r; ?% W( a) x" g; P4 z7 U. _5 M( h  M. s
2for循环就单纯只有一种,没有变化,它的语法如下

& b& D, D) r, A, f8 j( Q6 G9 u0 q4 @7 E1 X2 D: C
for (a; b; c) { statement } & [4 t9 v1 R; X: A( j5 i
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

& Z0 |) R  B' X( a& S9 O) S下例是用 for 循环写的的例子。

: P( w2 \& A) u9 n( N<?php ) p1 Q) d7 E9 q" r- q
for ( $i = 1 ; $i <= 10 ; $i++ ) {
9 t: {9 @+ S  R3 e0 T3 Becho "这是第".$i."次循环
<br>" ;
, {2 ]' g1 a% G# i} 2 a9 `- Z7 b0 }* \$ k9 _
?> $ _: R4 M2 z( t- ]; D' S6 s
7 h$ b" m- M" K; A/ X  @
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
2 p  }& T" h) S
语法如下:
/ J' I: O& H/ Hswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 t1 l2 t9 Y3 l5 o
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ' i' K$ X1 n. N$ K) l

2 I0 y  V3 G: e+ W2 u<?php
/ h+ W. F& K& u9 eswitch ( date ( "D" )) {
0 t- L4 }9 U* D+ c3 P) h! [: ccase "Mon" :
; `6 X" G; X4 n0 Z, X  Kecho "今天星期一
" ; " S/ M; h$ m; n9 v2 @8 l: q# b
break; * T1 F% o" K$ ~2 \6 F: k) @
case "Tue" : ) f- c: p' K/ H, I7 n
echo "今天星期二
" ;
& s" A  h, z' e2 Nbreak;
4 F% R6 {) C; |case "Wed" :
  S8 D8 a" p2 `2 m, R% y. X' }echo "今天星期三
" ;
7 T( ^* F! G0 W8 bbreak;
2 _) s: \; N7 h+ ~0 w7 a. ^8 [case "Thu" :
2 h/ L( u# B8 W# J' a, O- secho "今天星期四
" ; & P  g5 y3 T5 l
break; 5 n' w' P7 M9 e/ k( U
case "Fri" :
* \" ~* a. n( _5 ~  }# z" A8 Z4 wecho "今天星期五
" ;
/ j* W5 H+ A$ l3 D  L$ ]2 e) o0 Mbreak; ( z9 [, I* y, o! Y
default:
' l/ S4 Z9 y; Y5 [! pecho "今天放假
" ; 0 B* @# m7 J$ s2 w" |" l& @
break;
; V  G: M! @# I+ a5 _' {5 k+ |} - _1 z0 P( [1 n+ K" p: F" `& X2 \
?> " ^" ~9 @6 x. m5 x8 e0 a
这里需要注意的是break;别遗漏了,default,省略是可以的。

3 u1 h/ \; ^/ L0 J2 _* p4 B很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

1 P, v( |& M  L) n) `十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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