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

十天学会php之第二天

php的流程控制 : V2 z) Q/ z" f9 i. q

7 s% T- U2 e9 L# |  c# J1 y0 e/ b1if……else 循环有三种结构

# x( p! g: z. K% y6 V1 L( @& a8 v第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 0 s1 \8 y) g# u, O6 j
4 O. s; h9 f( @0 q. u
if (a) { statement }
: l' o, d3 D0 k" u其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
4 H0 y3 I+ K5 Z" `. N" A
范例:本例省略大括号。
2 V5 m- f4 T0 ~7 b, c. w
1 B) c$ g* s' Q$ m! `; F: e
<?php
$ C+ B: f7 V  v  q) @; x5 bif ($a==1) echo "我爱
php" ;
8 E; [% t: F2 J6 f& H3 H1 A?> : [* R3 B: ]# Y) u* Q; v  n
/ D' x2 }" l' r- Z5 z+ s
这里特别注意的是,判断是否相等是==而不是=

. n4 |2 J4 \& }- A0 H范例:本例的执行部分有三行,不可省略大括号。

9 m6 e, t/ B2 ]
6 O5 e. R5 K. Q) B3 t* E9 z<?php
% W& I8 p) W6 _; vif ($a==1) {
1 H) [' j3 {2 }, i4 i3 Q5 Necho "我爱
php" ; ( W9 Y, p  Z; S1 {
echo "<br>" ; 9 k5 r* K$ f: z7 }  w3 E
}
2 g6 J. m, R3 \- z?> " z5 ?( \0 e7 D+ ^' F5 D+ D
) M: F% o* J+ k3 w$ w( e
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

- G+ B: e. S8 O9 A2 f1 ^( l, d9 d# f9 ~% S0 F+ k
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

7 z! v8 g0 h/ I- V5 P# Y<?php
5 t3 ^. ^% i. T, J$ o0 x' y/ pif ($a==1) { ; X: A: _/ r1 U1 Z! D  p1 t- c
echo "我爱
php1";
; T5 h0 ?8 q9 B! C6 Lecho "<br>";
4 i2 l# v6 [3 A$ i* P}
  T$ p7 [5 j7 @# d$ Z' S4 qelse {
* Y! }* s$ U: g0 `echo "我爱
php2";0 [7 K( D+ b0 W2 `3 _
echo "<br>";
: O( l1 N6 c, i9 `- b} - b8 V/ i: i/ ]- |5 Z, Y
?> 8 B8 @- Y3 H& O+ W5 j. G. y2 |! p* x
) V. a" |! P: R' \4 }! X7 L
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
- y& K& Y' b$ f: `$ K
直接看下面的例子

0 O2 g3 g0 }) V, v  z7 Z* H/ s* _<?php
- \8 g, O! Z  o' h: _( ~5 [. H, Gif ( $a > $b ) { - D# n% u& ]  A8 N2 M
echo "a b
" ;
5 ]; a% d* _3 k, k# a2 z} elseif ( $a == $b ) {
# s, T# m9 [9 k: C2 Iecho "a 等于
b" ;
* ?! i6 b" Z+ H4 y5 j} else { 2 m3 v; u1 k0 f, {
echo "a b
" ;
$ G) a+ A# B% e0 _/ _) q} 1 ~/ k6 r& H6 r/ K
?> # Q8 J6 l# i1 v0 x/ x, Z
. I6 D, g$ T! K1 q
2for循环就单纯只有一种,没有变化,它的语法如下
( G' Q2 |, P6 a9 j

) \  B+ a  V1 Z# s& v; Z- C1 v5 B( Mfor (a; b; c) { statement }
3 s' O1 E- e# f3 E  B. ]* x' H其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
) ?: o" _; S, _  G% C
下例是用 for 循环写的的例子。

9 x" Z4 }; B* a! s0 R/ |<?php & h1 M% V. B3 ]( g7 F* k0 v$ N
for ( $i = 1 ; $i <= 10 ; $i++ ) {
  _+ a6 l$ S) C. t1 r1 u9 j7 x" ?echo "这是第".$i."次循环
<br>" ; $ x+ \4 G3 q2 J2 `2 v1 y
}
; o! |# m7 u  v; d( o; _?> # T7 g7 D1 E" ^& `2 d+ i5 E2 b
8 j8 X, F! z' X! n# E" T/ @
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
8 r3 y. c% C$ l5 n
语法如下:* x4 }( G9 I5 O9 C* t; `/ ?
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
5 u6 p, I5 j5 e: `/ I: D( r
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 % q! p. [% \' y/ q; Q  Z: b

; R- `" c# a1 p2 n<?php
" `$ T+ B/ {! h! n2 c" o  Yswitch ( date ( "D" )) {
3 x: U  s& r" _# V, b3 z) ?case "Mon" : $ G3 a6 m5 u! ]
echo "今天星期一
" ;
8 ?; G( O7 J- k2 Y5 z- zbreak;
% J# @2 _5 A9 o5 m4 @% \case "Tue" : 0 f% y6 ?2 `# R) G8 V2 V1 Q
echo "今天星期二
" ;
7 L0 e3 ?% N! p% O' R2 y; Hbreak;
5 y5 T/ V( E3 c" I3 X6 x" R; Rcase "Wed" : 5 D( B. C& L+ i5 w8 ?. G
echo "今天星期三
" ;
. o) Q8 ^( d8 ~- K- E1 J. E- a5 {break;
  |9 W1 @9 Q1 k6 @* F! Z' }1 Qcase "Thu" :
, }/ q# k- _3 E! B0 j; M. ?+ l& Jecho "今天星期四
" ; * T! c9 |1 U5 F) i
break; & d$ a5 \8 K5 L  h+ j+ g5 ?
case "Fri" : - g! ~& U7 {* H
echo "今天星期五
" ;
" `$ l  t- t: }6 Q) L* Xbreak; 1 D- W% d/ Q8 M+ G2 l; K
default:
! j# l5 A, C! ]1 Cecho "今天放假
" ; % _8 K# }, I3 i
break; - ^% g1 p; S; W8 n
}
; J# [3 x- E, O, ]+ e?> 3 N  r- @( w7 A- m$ l' e/ s2 T: c% b
这里需要注意的是break;别遗漏了,default,省略是可以的。

; o" Q7 }. K1 w& y6 e. ^4 ~很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
. H8 g; m/ T+ S4 a- A2 v) {
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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