返回列表 发帖

十天学会php之第二天

php的流程控制
$ l0 b* X7 @8 _! L% R: K( M) B3 |% G% x4 @- b: z% Q0 |  `
1if……else 循环有三种结构

* g: Z+ E) S# P5 Q2 D( g! f% W; s第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
. V) W5 q. x& P( @; s6 ]* F; o+ [! y# z* T* H7 e. {9 }7 g
if (a) { statement }
) l4 {4 f; O( ~+ o其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
& Z8 Q4 D0 q6 o1 V+ S% |
范例:本例省略大括号。
' A+ b  y# e) G8 B# e2 j" a+ R$ \6 C  G

- L& ?6 X  U% z) }9 ~+ f% D- P4 [<?php . q3 H4 G- x2 j8 o9 K* w, H; a3 P
if ($a==1) echo "我爱
php" ;
* R4 n. x1 Q) f  U?>
6 k5 M) n) {9 z+ `9 ~: P
) r* ?5 `' _/ ~2 b+ L6 t' s3 A这里特别注意的是,判断是否相等是==而不是=
1 ?' p; C  y# n( f
范例:本例的执行部分有三行,不可省略大括号。

  D  w" F, i0 |
0 v# o3 O$ l+ w8 L<?php
& `) B& P( S  N' ^if ($a==1) { 1 X8 J/ J& S, Y/ Y( c
echo "我爱
php" ;
5 Z, s4 X- ?0 h% _( T% H# F) ^) u" Xecho "<br>" ;
6 ]8 [9 _0 [0 S} % J8 s! ^/ ]4 m! J+ Q7 ]3 d6 v
?> ( M& Z4 g5 Z. l- N# c7 q; P& Y- u
$ H- R3 x1 D7 |* o$ U
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

' R$ x' G, _: K, I" z
/ d7 U! }1 }0 x" F4 K* Y3 Nif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

" M7 t9 v8 ^+ u<?php
' \+ P4 i7 x) h3 {if ($a==1) {
( p: q5 [- D% S9 m5 Q8 H& @echo "我爱
php1";
7 H3 {+ e8 A- M9 g; F2 ?9 l3 f7 yecho "<br>";; b5 v( F0 X3 \3 k5 F3 {
} - o/ e& o7 v; b% V9 }. n
else {
) d* B( E9 Y% y5 Uecho "我爱
php2";
9 }: Q2 ^; t5 L/ Y: decho "<br>";
, N6 i$ L. u5 K}
. e$ }' O" ?8 N9 T% z6 q, x?>
! Z4 d' S& q" b  t4 h2 X8 _4 C- G. A$ x- ^/ a# @. T8 j
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
1 q3 M; n& L7 O
直接看下面的例子
5 p1 k) u" D/ g) r8 Z% @2 Y) {
<?php
3 e/ k! m' J( Z, N! j6 E& Q' a1 sif ( $a > $b ) { ; U7 c9 X% A' U5 g! W
echo "a b
" ; . _7 I( l" ?5 i, a9 _4 x
} elseif ( $a == $b ) { , z* H& W/ U& _& U9 A) \: a
echo "a 等于
b" ;
+ E/ o8 ~; i5 [. H* X} else { * N* K' y5 z+ ~; c
echo "a b
" ;
' o: K4 G2 a& a, p( t}
3 b! a5 D5 j9 {* q/ e?> 0 M: H% M% T& i) K' j

& }) b. w. @" P7 s7 g0 Z$ k0 G2for循环就单纯只有一种,没有变化,它的语法如下

9 N" E! a8 a% T
( L2 J' @' t' M5 |' k( Mfor (a; b; c) { statement }
2 E5 w+ _5 y& n/ }2 C5 f( v4 W4 f* D其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
% t7 V- h+ N4 M: `! N! z
下例是用 for 循环写的的例子。

6 ]; ?/ P$ l* o<?php % X; K. }+ E  G; O: ?
for ( $i = 1 ; $i <= 10 ; $i++ ) { ) [6 G! q6 p" u" W9 Q8 A
echo "这是第".$i."次循环
<br>" ; ! }- B3 Y$ T! ~, Q  j, G7 V, B3 G
}
6 H! `( N, K2 k. O9 I# b2 Z?> 2 [# F4 [5 k( Z& L5 J

8 q9 j3 g2 c. f  J" ^3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
1 `4 j7 S6 A; d9 }  m  w
语法如下:0 X  Z  u5 t5 }4 R( ?$ ?
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 4 G" Z3 ^0 b/ s* j' ?+ D
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 8 d; b" Y7 m0 k

4 L! V7 Q* R& o- r<?php
: ^: q# }9 u: R# z1 Rswitch ( date ( "D" )) { : z/ X# t, P* \. e% x0 l0 ^9 k
case "Mon" : 6 @; ^) {- D$ w; ?
echo "今天星期一
" ;
1 n* H1 U3 ?+ F/ a4 H; t) [& @" Dbreak;
) \( J% [; c/ c" U" Hcase "Tue" : 2 x' [# W8 [2 P) y4 O9 Y, v3 f4 |
echo "今天星期二
" ; ; E  R) D- h8 I! k$ B1 R8 r
break; 1 Z# D' n4 i; ~
case "Wed" :
) b% L* T( U2 C  L4 i; ?& `echo "今天星期三
" ;
; x/ ]% W+ `4 [: u6 Ibreak; * H1 O/ d4 [* c8 k
case "Thu" :
  |4 A) q/ n- u+ B6 _8 Iecho "今天星期四
" ; 6 q! E' H% p9 j/ s& T+ n  B
break;
) W) L7 A" ^  `case "Fri" :
) S+ v  U" W2 F" ~echo "今天星期五
" ;
" `; ^" z# z5 _* Pbreak; # f1 L0 k) n; C# e
default:
# k4 I9 A) F3 c3 F1 L1 b+ W/ h) [! iecho "今天放假
" ; 3 F  K/ c- `* {2 K6 s# _6 Z
break; . s& {/ d1 H0 a) i7 T
}
9 a" d$ o# M3 ]' X- U?>
# ~# V$ J5 c7 J/ V6 Y这里需要注意的是break;别遗漏了,default,省略是可以的。

& h+ m) o+ c5 I% X* z很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

4 b; K8 s5 O4 v* H十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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