返回列表 发帖

十天学会php之第二天

php的流程控制 / x' m4 i4 Q8 E$ v) _

2 w' w$ T. R7 a9 @1if……else 循环有三种结构

$ Q2 X4 H* y. m) y第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: . `" k+ b3 T: [* `

" K2 Y2 n+ w) v) h6 Sif (a) { statement }
8 m( T9 ?  b6 c2 _. I5 |其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
9 z" @5 E; x- k# W5 Q! n
范例:本例省略大括号。

" H7 g% P0 @6 W$ P7 x
3 z  ^7 z3 d' K* h' C<?php * Q5 ?6 V; q3 p4 U6 ^% Q1 U
if ($a==1) echo "我爱
php" ;
7 ^& I9 y. v4 i?>
5 w5 @6 `3 ~# m. O2 [. K1 W& [& P7 Q. u7 v
这里特别注意的是,判断是否相等是==而不是=
7 j- s% |8 p/ s6 D6 S9 p
范例:本例的执行部分有三行,不可省略大括号。

! g# i, ?3 y' o% `" ~% v* `, U$ _' V: S0 L1 C/ t
<?php 5 ~" i( f, W$ c" a9 ]. t
if ($a==1) { ! \* E- G- X* `
echo "我爱
php" ;
' W. x5 C: {+ o& Mecho "<br>" ;
; ~& L8 W9 {0 d; @# i} 1 R3 H- o) V, S; R7 O7 M1 o$ V
?> $ N7 L4 Q: r1 J  ^0 w8 L
( _* D6 J. v0 X
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

0 t; ?. ^$ C# H! r) z5 S" v. @; {) S. i
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

4 k0 U' n7 G* w3 J/ P5 Q<?php
* S- V# ]; c% k6 Oif ($a==1) {
+ @5 g. s/ k% X- k  V, [echo "我爱
php1"; 6 _6 B9 n  c! |1 v8 T
echo "<br>";
7 N4 S0 y) l/ T8 }, _  Y% P% o}
& b" {3 ^/ B% X  f* Qelse {
$ u: G* E" M, pecho "我爱
php2";. H; X8 y  r0 E0 v7 W! E
echo "<br>"; . b) A' P9 Y% O9 l& @
} ! E% J) G) o0 c; X1 U. n
?> ( w/ u' |3 l4 W  L

& p& O0 q  t1 G3 @第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
6 u- ]1 b6 `+ K1 n6 z' \+ F4 \
直接看下面的例子

* G2 ~2 z' A8 f1 ^<?php
7 L% T! V2 Z7 l0 P3 Aif ( $a > $b ) { - c9 _- ^# @, x# u% U
echo "a b
" ; 8 H0 y* F4 b( i! z" x# N
} elseif ( $a == $b ) { / L! V! C5 f7 e# U" w5 R3 c  r
echo "a 等于
b" ; 1 e/ |3 q4 x4 R0 `
} else {
- v% Q$ [! d. I% |! ]) techo "a b
" ;
3 x& A% t5 w: ?7 S} 0 B6 g+ U; a+ }, n% t- Z- \, ~
?>
8 f( p' E+ C- L' P+ I% a
! r$ Q& u/ B' ]+ X- T* j2for循环就单纯只有一种,没有变化,它的语法如下
, z  Y$ ?. z- h- B8 s4 X
' Y" E0 Q/ x$ p" I
for (a; b; c) { statement } 2 y% u/ p2 z  X4 m. I! c
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
" V6 }( f( ]% A4 U: {+ f* S
下例是用 for 循环写的的例子。

- O/ M1 \8 y* l: t  X8 [& F<?php " @& D/ I7 C9 R  q* S5 f
for ( $i = 1 ; $i <= 10 ; $i++ ) {
& q0 h9 u3 R: k6 F% n( T, Oecho "这是第".$i."次循环
<br>" ; % G. a, ?" j# D+ r9 f
} 1 o4 r9 x8 A" s
?>
9 c+ i7 m$ K% F; ]. m0 b! \% I
& O5 N5 j, c+ i; x% _3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

" I" A! {2 W  O9 E$ Z1 t& f$ H& o语法如下:
( T- @% ?( V6 {" }) Y% G; \/ j, Uswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
7 o6 P( m0 W5 J* F8 r2 c
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 $ J' i8 n5 T# V' k& ]* ~% `
/ \9 `& c- x: b& \# H' K' M
<?php
9 C% s2 h, k# D3 ]3 Fswitch ( date ( "D" )) { 8 f5 S6 k" G/ h
case "Mon" :
& C0 y" O  p7 q% uecho "今天星期一
" ;
2 Y- _; @# m. n2 n. s* ]8 ubreak;
7 A- j* O1 t4 v& H& D9 }case "Tue" : $ ]1 I) t  `/ N( B/ }# m
echo "今天星期二
" ; ) R  M8 H# D  M: ?3 j
break; : C* m2 f6 M9 f7 k# R3 o
case "Wed" :
' m4 o1 n# Z" U. K/ G* J1 Becho "今天星期三
" ;
& m" Y5 G4 P) Wbreak;
6 s* _( N) y# U( ]. r. \' n5 ^case "Thu" : ; ]- r9 z8 q" y9 K! n5 t9 l, v
echo "今天星期四
" ; 9 Z& I4 x; p) [% C& Y* s9 u, ^
break;
9 P  J: {8 R8 t& `4 L7 u" J' Tcase "Fri" :
2 [+ V3 O% \% o3 M1 Becho "今天星期五
" ; 2 Z" ~$ Z. F% ?$ ^( ~) f4 C* ^7 O7 Y
break;
! Z- }, E5 a, q3 ndefault: / B5 D( O2 I$ M  U9 G
echo "今天放假
" ; - i  p1 X2 [9 a2 N+ h
break;
  s4 V" n1 d2 r; z3 ^, t! u$ ^}   J* E8 N# O$ H9 h  G& v0 c
?>
) L0 l2 p9 ]* U8 B/ C* ?8 H这里需要注意的是break;别遗漏了,default,省略是可以的。
1 ]; y! F+ A3 E/ V8 _
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

. ~1 N  L' d" }1 m; M十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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