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

十天学会php之第二天

php的流程控制
8 x5 P% k4 ^0 I. R
1 G( S0 l( H, Q, {- ^/ X1if……else 循环有三种结构

+ m9 [5 [2 j$ K0 `! @9 l2 n! _' L# h6 R第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
1 Z0 G1 S! u+ w/ [6 h; \( I1 M4 f) Y- Q, K/ Q" z1 J
if (a) { statement }
( V4 s4 I$ y) E其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

9 x6 a- r$ c4 }* q. R范例:本例省略大括号。

" K" @, x4 ]7 Y* c! \4 H
8 R; R8 t1 @4 f1 w  i: h<?php
3 J) x  Y; k2 a  G3 F/ t# Nif ($a==1) echo "我爱
php" ;
* s# ^$ u4 N$ b9 e7 ~( O7 q?>
$ @+ c+ o, T) y. V( K$ f) A0 t1 q4 w# Z0 s
这里特别注意的是,判断是否相等是==而不是=
/ g, n5 v) {) c; }& s: [
范例:本例的执行部分有三行,不可省略大括号。

& x2 T; E4 H* J: V; F' v
; A/ n- _0 |6 L0 }; q+ v& r<?php
4 H+ k0 y+ M6 V- t1 \8 y, Uif ($a==1) { 9 ]; w- y  Y& b7 Z) g, L
echo "我爱
php" ; 6 [/ ?8 d3 }6 M) M9 Q
echo "<br>" ; 1 @( s$ N' V* J5 \2 O& A
}
( }2 N) u1 C. u/ m3 e* K?> 6 r2 w. N" R( r$ a5 a0 y- X

7 n& M0 X: X9 b4 U. g第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

4 K& K; c  J: b6 e5 B4 J. X7 a3 f6 j! Z- x8 b/ A4 m* X
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

: x- x0 G( _6 `. ]<?php   V& P' d. T( s
if ($a==1) { 2 S7 b, o5 j% ], h
echo "我爱
php1";
0 b7 X0 ~4 p3 ^% O; y! @$ m( Iecho "<br>";: S3 H9 {% I* Z: K3 x& O- B
} + P8 |1 e4 N$ b3 n' t& P; f5 B7 ^
else {% s0 r9 h" s( P. ~; ^. c
echo "我爱
php2";% M; w# t+ N! x. g' c
echo "<br>"; & e6 G2 a9 H: u& V% |
} ( r% t& D$ w9 y9 I2 k7 x* p( g
?>
: R4 t' W' d" @8 S0 M, a: o1 A; a* r. q$ ~
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
% }0 D. a7 k$ b2 d4 E2 S! A2 ]
直接看下面的例子
, u& Z8 V8 a' A( {5 B; q* E# ~9 x: s
<?php
) R/ Z% W$ U8 r9 G6 r3 Jif ( $a > $b ) { . i1 j+ s6 i7 x4 r0 O( P  y5 j) i
echo "a b
" ;
, N! n2 j; t! q: _, H} elseif ( $a == $b ) {   o% H0 d! ~, V( Z* }& K, f
echo "a 等于
b" ; ( k9 l) K" ]4 G; Y5 u
} else { 4 R' c! `2 _- b" l/ R# Q$ R1 K0 _
echo "a b
" ; * X& g4 R- S: H4 S( J' W
}
% Z/ Q" y5 U" Z?>
" w1 e* c, E' e9 D6 ?2 G7 }; e
, {5 |: m5 g6 I, n& o" b2for循环就单纯只有一种,没有变化,它的语法如下
: c5 V# f6 V# j2 h9 h

# [9 S: R7 c8 Y. M% j! v0 afor (a; b; c) { statement }
% ?) i( o& V1 t$ u/ t% x2 I其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

+ P/ Y8 q. C$ D6 d2 Y下例是用 for 循环写的的例子。

: ^' \1 j: G; w9 E; l<?php
7 l0 v; s4 }8 c+ K4 tfor ( $i = 1 ; $i <= 10 ; $i++ ) {
6 Z3 z! @6 N( o% Lecho "这是第".$i."次循环
<br>" ;
9 d1 v7 q: X$ i5 y4 f5 w}
& b# j" v4 ^. F: V3 H+ O5 M' _5 Q?>
" t8 P9 c! z" d6 g0 f# g, ]7 Y, E
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
0 j: g9 @  U" |7 u- Q% b
语法如下:* A; C/ I! ^# [3 M1 }
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
- I2 R# u& ]) v) m) W, M1 d' }
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
8 R! B9 A+ E  @1 o
: y4 ?0 R  C( Z5 N- y- p, C<?php
/ G$ O5 _! n. y/ q4 b& @! _switch ( date ( "D" )) { 0 a7 C$ N8 @6 F$ P
case "Mon" : % d$ t4 k% I5 y$ {! X" N
echo "今天星期一
" ; 5 @( Q* Q7 I4 t' C8 v% S, w8 D2 M
break;
6 w0 d) u$ z. X7 q7 Z7 U) kcase "Tue" :
' Q  `3 o6 p& h. N- _echo "今天星期二
" ;
* d6 n  @3 @' M7 R/ P0 d' nbreak; ' _  B% _: K! Z" G; ^; E# q; q  i
case "Wed" :
' C! L' {5 P" x/ Q7 V6 C9 Zecho "今天星期三
" ;
, Q6 v! j8 ?/ e2 e" |4 B: c( ~break; 9 j5 C  j% W" V, u/ C2 I/ W6 _
case "Thu" : : W7 C+ I- Y2 n0 A0 w0 j, j- s
echo "今天星期四
" ; & l3 O2 A# p3 ?0 @. T: o9 R; s; r
break;
! O" F8 L: V$ Wcase "Fri" :
0 S! e" k( ]$ h- n4 S" M& V  wecho "今天星期五
" ; 9 U  y2 y! C# @" N) O
break; ; @! ]" W5 _2 _: h5 }
default:
( |) `  L4 o4 i0 `3 ]8 Lecho "今天放假
" ; 3 b& v9 r* k5 i" [
break; ) h/ `  z" _. T% m7 d, C, X
} # f, U0 K9 d& \& C
?>
* X7 s: w/ \9 E7 V这里需要注意的是break;别遗漏了,default,省略是可以的。
8 B5 m0 }" C. E0 a
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
8 b- ~2 K: e! C' z% M% v7 X5 y
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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