返回列表 发帖

十天学会php之第二天

php的流程控制 , s+ x5 ^; u% V' H

7 I8 ?) b8 n3 v/ m: b9 z3 G1if……else 循环有三种结构
, `$ C; h$ z& O' l% L7 }3 x
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 5 k9 [/ J7 F( W# {4 R3 Q3 k- M
  T0 Y( |/ m$ J- T
if (a) { statement }
$ X+ y9 u( T! w8 V其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

& P" t- J# ]  b- b. k& ?9 @范例:本例省略大括号。
3 u" B3 ~8 A  g1 e3 C, Y
0 o5 k6 b9 s1 e/ T% U
<?php ' R& W0 u- W) n
if ($a==1) echo "我爱
php" ; + R! X' C2 _3 h3 a
?> 9 }: D& i4 |$ q. w8 c0 ]  ?

$ g% R( G0 n' m" A" k1 N这里特别注意的是,判断是否相等是==而不是=
) i- _2 D! H4 u# l& @/ x  o  ]& z
范例:本例的执行部分有三行,不可省略大括号。

. X8 }7 W/ p# @4 f7 E7 B) U% i% {$ h+ S, c/ z
<?php 7 G" X. D7 {6 z3 \
if ($a==1) { 5 e$ Z: J, y  r+ W, R. G3 Y3 s# v' o
echo "我爱
php" ; 0 }% @: ~5 A0 x5 E
echo "<br>" ;
0 m: U, L- p# M8 P0 h3 g}
! |# l% Y0 _- r1 [. e?> ! A$ q0 Y9 c1 E3 p
8 o% d# }% g! \5 e
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
" H" V4 Z; K& t% L4 V9 f

4 K4 R- Q8 @7 A# gif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

  ?/ r% H4 M& t" O1 a( z<?php 0 f- A$ S/ B  b+ d8 P
if ($a==1) { + {, }3 j7 F5 _9 n7 P0 b
echo "我爱
php1"; + b. f9 u0 Q, S( {. W9 {" i
echo "<br>";1 v& b; F1 k4 x1 V  a- x2 k9 k
} , x7 @/ ]4 G! ]9 ]
else {
7 ]/ Z2 Z; S1 \. secho "我爱
php2";
7 X  ~& J" `7 h1 K5 P0 K/ {echo "<br>";
/ ^! V0 S; @- m}
" B; o1 Z% L. M?> 0 h5 G* y% F7 O( ~2 |3 x

. j9 ~2 u% U4 u3 }* O第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
6 r2 T2 p4 L5 ^6 {2 l+ O
直接看下面的例子

" k9 f- ?$ l$ N. F# ]<?php
+ a  S- a4 G0 z" x% m  l/ Y  S5 }if ( $a > $b ) { 4 U  Q- M# Q; Q9 i$ k" Q
echo "a b
" ; ! A. _# Y& G0 F3 t
} elseif ( $a == $b ) {
, F, P' |; [: u1 b) Y% Z: |9 J6 g& C- \echo "a 等于
b" ;
' F6 _7 v: U* W! b$ `} else { % O5 i1 M: |1 G/ q  T( Y
echo "a b
" ;
. ]+ S% z5 Z' Y" ?* f5 p}
% g5 P* @% b0 L. ]?> + [. C" i' C1 j( b* _/ h9 i; b

! J1 K( [( D- _9 R9 S- s2for循环就单纯只有一种,没有变化,它的语法如下

$ l( F8 x3 a; |' \: B. o8 q, q/ D- [
! Z/ |6 L, o& ofor (a; b; c) { statement } 0 O6 ], h; k( M5 h4 d1 ?0 m/ Z, P
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

% k0 ]" k. M* Q. R下例是用 for 循环写的的例子。
+ F8 t) z# Y6 k! X+ \6 F
<?php
* @% P# b" O7 g* h" l8 ]# h" xfor ( $i = 1 ; $i <= 10 ; $i++ ) {
0 h6 \& [5 x7 F3 S5 }7 z& Eecho "这是第".$i."次循环
<br>" ; . }; Q2 n% m: s! k4 N8 j7 @
}   t; }. V, V! w- i9 [  T1 e
?>
+ m7 Y& N( v2 g
( a# Y9 W  x+ F) D3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

8 q6 d% N9 z* f1 F6 S  X语法如下:  O  X0 _8 X$ c4 l
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
4 X+ [5 o" T' h4 K- K' K
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
  J8 _4 j/ y8 L, i
' U1 D0 ?" f6 g<?php
3 a* q$ g6 \( I: S- a1 E0 P6 _5 Oswitch ( date ( "D" )) {
4 A: c: \' W+ _) Bcase "Mon" :
* m$ D/ w/ i" }/ _  Jecho "今天星期一
" ; % z! Q/ _6 V  `5 U0 d* q
break;
+ |) [4 f0 K9 wcase "Tue" : 5 |/ Q2 r- D% ]* z
echo "今天星期二
" ;
/ m$ k* G3 M( Jbreak;
3 x$ K8 @  q$ G. `2 }case "Wed" :
1 H4 a# ^/ w0 E& U1 O0 d( D& q( decho "今天星期三
" ; 7 @) c" ~: Y; j' m
break; 0 _( [% u, Y( N. q7 G  `
case "Thu" : 3 A$ Q- H! W9 J) C
echo "今天星期四
" ; 1 ?8 d) V) O+ C3 c
break;
9 ~0 v' K  c  Pcase "Fri" :
9 I9 b: T3 R( C# i$ cecho "今天星期五
" ; . \8 y( u. N4 I4 Q- {+ _
break;
8 Y7 h/ T, U$ L) X* @) Bdefault:
4 _2 V7 O, @, `5 \$ q$ S! decho "今天放假
" ; ! e% c9 g( f6 }  b/ c- b" h
break;
. k- m: X1 H/ y} 8 l# Q% j! d& s2 _% ]6 S
?>
. d# H/ _( F  m' P% l这里需要注意的是break;别遗漏了,default,省略是可以的。

% J8 ~8 i( `$ ^0 }! q! t5 }很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
$ `( m, H% C5 [9 Y2 V
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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