返回列表 发帖

十天学会php之第二天

php的流程控制
& p) E6 `: H! I+ J" W) y! f: W+ @1 J6 ?  N! l' X4 _! h! \5 i
1if……else 循环有三种结构

, a: b4 r# T3 o' [第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ( h, X' ]. U0 @' d0 E/ [4 _

) b# J2 H. t6 |5 O2 H( F+ tif (a) { statement }
" n7 ~# r" P2 z其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

% }4 x5 ]# W# C2 q  I范例:本例省略大括号。
. t) _/ F2 O& K- K; ~$ y

' T: m- n; C$ H  [/ J<?php
7 G+ J+ N" X' }9 pif ($a==1) echo "我爱
php" ; 3 X- ]$ {6 X2 I+ Y( i* S
?>
/ @+ ~. }% L) `! U
/ }6 S9 ?6 u0 j: }! @7 c这里特别注意的是,判断是否相等是==而不是=

: g3 \- B( c+ M' T4 ]! A范例:本例的执行部分有三行,不可省略大括号。

+ F2 ~) e! e/ U& _' q1 A; d0 h- \
9 i7 {9 |) e. H5 G9 g' N<?php ' L" D2 C/ ?/ f- Z) F
if ($a==1) {
$ p, @$ ]# R7 [: ?8 e: {' Jecho "我爱
php" ; 9 y: A5 q7 O( s0 s
echo "<br>" ;
  H/ D  n# Z$ n: N}
' x# M) t7 @, @7 ~?> / ~' A& N$ ]( s/ ~

$ c' j3 M1 y3 M% L7 W: j第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

/ K( W, H( v/ x1 C+ U' p/ `3 I1 Z" o
; L& v( t$ O7 j% k: K+ C, F' E, oif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

+ s9 o" {6 o  {1 Z7 [6 D$ ^* \( I* M<?php ( C  C! ~5 H2 q9 d& M
if ($a==1) {
$ y2 e2 I) S* B8 ~  Decho "我爱
php1";
& ~0 F1 E- f( Q+ r2 O3 cecho "<br>";' K# A" Q6 @- O$ o
} # A& s1 t; Y) y; y1 c+ \5 m  O
else {# n9 Z- E' n- m
echo "我爱
php2";! h. p' t7 O3 b: D( K7 C# b
echo "<br>"; , r( ]+ Z& ]. W0 |
} - V: _8 K6 f1 b' u) i, m: B( q7 @/ u
?> + Q. x- ^1 ?; b7 F8 T2 P' G

. i  X/ m8 J0 ~; P5 T2 d第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
, X/ f/ N/ j; |. @; e
直接看下面的例子

1 y  [  g4 ~( u2 d. t1 K, H+ ~<?php $ z6 n$ _# C- x' B, Q, m( Z
if ( $a > $b ) {
: V% P2 e4 t" |% B2 f! j  Y* ?echo "a b
" ; 6 U- s6 o+ b' @; l* q6 F( I
} elseif ( $a == $b ) {
" ^4 y  }+ A: Eecho "a 等于
b" ; 5 `  |& x" m6 O, F* H, n1 R% i  \6 @
} else { . [7 B1 `  j  {5 F
echo "a b
" ;
9 R) q) T/ V. x0 P6 B2 v( @3 x}
7 \$ x! X9 E" ^9 s?>
* _4 X5 }3 g/ a/ J' o6 C& G9 Q8 t  @  t) V
2for循环就单纯只有一种,没有变化,它的语法如下
6 w% ]1 e( H& T0 Y  v8 G- s

) |5 n4 t9 ~7 |4 W4 P7 x2 {4 zfor (a; b; c) { statement }
7 P/ l/ A4 O$ Z- L$ v: Q1 }其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

0 q. F$ |+ _: L/ r, b下例是用 for 循环写的的例子。

; l& A$ @8 C" [<?php
8 i9 M# V. o# D1 ^) q* C% Bfor ( $i = 1 ; $i <= 10 ; $i++ ) { 3 b- W" [; O, q4 ]# M
echo "这是第".$i."次循环
<br>" ;
& K4 w0 c+ k# q" ~9 |} - A- S+ c. d8 v6 m# i0 j9 G9 [
?>
: c- v, d$ m5 ^* H0 X# F/ ]" _; U
1 e. {; B. h& ~2 h3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
. {* n/ ^: e3 T& @/ s
语法如下:
% J# H8 z2 p; ~) N. o" `1 lswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
) c' l+ u& E; _; r
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
4 ]! w, \! \* Z& F3 V
5 i8 U2 g! i# g* G1 f<?php $ O; @- c2 j' p2 E
switch ( date ( "D" )) {
* B6 w, `+ U+ _' p. ?' k& @case "Mon" :
9 t/ ^: ?9 J1 m% _$ `. V. Secho "今天星期一
" ; ' ]5 Y  F$ K: k+ k
break; ( N% l1 o8 H6 ?
case "Tue" :
% }: @. G9 D: S' ^* t3 z5 \6 ~; |; d% cecho "今天星期二
" ;
) i! J: y" h% K: Y. F' nbreak;
8 X' Y( T9 N' S& B* lcase "Wed" : - M9 |$ y3 M( Y) D
echo "今天星期三
" ;
/ A" }# r: m  |! C, Ybreak;
! Q2 @; Y9 y0 U  ?* k* k; Pcase "Thu" : ; Y$ G* R2 n: }/ H
echo "今天星期四
" ;
1 f' A9 ^9 E2 @$ D' Zbreak; ( V; I* p- b8 J# h( r$ x
case "Fri" : / n. Z: U: L) m/ m
echo "今天星期五
" ; ( G) h& ^) s  G& F' ~
break;
5 W3 h$ Q6 x* J3 s0 \: |7 idefault:
' M0 {& @2 R, W. U2 v2 Z7 oecho "今天放假
" ; 2 a* l$ z' v0 e5 d7 M1 x; d
break;
! M& }. U, g4 p0 T} 6 _+ V2 A, e1 a! I, O
?>
( }/ c) m% c5 g  T4 M4 A" H这里需要注意的是break;别遗漏了,default,省略是可以的。

. Y9 F% a9 Q+ f' ^很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

4 h0 }; }4 ?' Z( v: f: i十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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