返回列表 发帖

十天学会php之第二天

php的流程控制 ) e; I7 B: i2 w

' k' ~' M6 c+ l0 e$ g1if……else 循环有三种结构

6 k# a7 A& A( O1 B* U' x第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
% A+ o! q8 i. I/ v
% ?( c# B) i7 x  [6 K4 N& uif (a) { statement } 2 h$ h1 O6 a  g9 i: F! k6 z6 U
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
1 ^0 r# D1 y+ H# S! n& _
范例:本例省略大括号。

: F5 ^" p: k$ a
* Q4 {0 [0 [2 ]* F. O& h<?php
. \' p: W" X& ~1 H4 I' y& Uif ($a==1) echo "我爱
php" ; . _, S! |" y0 S/ `/ l: I, F
?> ( G3 v! Z- }) Y, K" L) ~
5 ?$ q' T% s% |5 s) G
这里特别注意的是,判断是否相等是==而不是=

& Y, n7 @, p( t/ g' ~, [9 \范例:本例的执行部分有三行,不可省略大括号。

* \/ d( u0 S9 }8 ^
% }, Y& r0 q  r( ^1 u1 V; o<?php 2 O: f8 a1 I) s9 v4 ~! f
if ($a==1) {
2 J9 X# A) G1 |$ E' Yecho "我爱
php" ; " q& T5 V6 p. J
echo "<br>" ; / s3 F' Z5 I) u6 ]' z
} # i( [( E* x1 b2 I" g  y
?>
3 q, B3 s8 R' }1 g. m' V0 x) {# B1 i' S& ?/ g; K5 r
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
) U  i. J) B: o! u% E7 D% D4 s

; I7 {! l' b7 i" ~8 oif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
% R1 r# }0 n. u$ t( A
<?php
) y) Q' `) h1 i7 i0 Cif ($a==1) {
4 c; A3 t" v# t+ X7 }" aecho "我爱
php1"; 4 S% R- e) y; X# Y
echo "<br>";$ o+ c+ g  T; U  A+ n
} ' ~2 U/ R1 S: z% y8 p4 v+ K) q
else {2 C# Q) X; C! U' `; n
echo "我爱
php2";
( |8 l5 J+ r4 ]( Eecho "<br>";
* e# J6 D; K' ^% I: C}
0 q  Y  V- g1 E8 h: ?: e?>
' C) S: O5 F+ }% p$ o& ~7 m5 @" w9 V7 _$ r
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
1 m, B3 \3 [) a0 E* Y0 H
直接看下面的例子
8 }/ s+ |$ M: [4 }
<?php ! \, @1 l7 Q4 {" ?; }
if ( $a > $b ) {
0 V- H3 O+ L3 Decho "a b
" ; 3 n' Q0 H9 r) w: J* A8 N0 {; _) X
} elseif ( $a == $b ) {
* _1 @9 c5 x! F7 aecho "a 等于
b" ;
# ?0 I$ Y( T% j3 \, A7 L7 h} else {
0 P$ P. ?4 c; X- e* Mecho "a b
" ;
9 S, n* Z! L6 m1 z} - _7 i" H( {( y2 y6 G
?> 6 K; A/ P  h7 @) _

6 Z; F6 f( D& m- i- b/ }1 h2for循环就单纯只有一种,没有变化,它的语法如下
6 I) `9 _5 D* B6 e) y. _

( c) M4 b4 Q" r1 `$ ?( cfor (a; b; c) { statement }
$ M3 W, M) l% v3 }5 n' C. u+ S# Z其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

0 `. q, z3 g9 ~( x下例是用 for 循环写的的例子。

( h/ }6 `# M! `* z0 j2 I* D<?php , t; ^. @3 x. d" z: g% [
for ( $i = 1 ; $i <= 10 ; $i++ ) { 0 q) ^) G! ^% _
echo "这是第".$i."次循环
<br>" ; . N# K- ~9 ^8 I: J
} ' x6 r& p+ X7 p( C3 D1 t' \
?>
: b3 y2 Q7 u0 T8 M* i6 ?! l( R2 T' i) q; O/ j
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

  E( Y; {( u- f8 J6 l% S. U7 I, M  F语法如下:% v5 f9 ], w' c( k$ G
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
+ u4 L; D& B- @
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 4 o0 m8 f. f, S  |! L+ I5 ]  K3 p

) \# g. ?$ n/ d8 \$ ~<?php
% Y! D% x; r3 B0 F! ?- c( Aswitch ( date ( "D" )) { ( H. u5 N  T* y6 G% Z
case "Mon" :
+ a- V- T! T; b. |4 ~echo "今天星期一
" ;
# u0 I: M% D) ^5 a) {- p( Wbreak; 7 B+ o/ n. [+ e" u- i/ q+ |/ z
case "Tue" :
8 ~* ^; g7 b4 b9 techo "今天星期二
" ; ( H0 O' _3 Z8 N3 v
break;
1 n! n4 h8 ^* j/ scase "Wed" :
$ K* \# m! j& w5 u& oecho "今天星期三
" ; 9 Z7 j  a+ V4 N2 v
break;
1 E9 f3 u& R, S7 |case "Thu" :
; o( M+ Z  B4 N7 @7 Y8 qecho "今天星期四
" ; ) a: i. F) K7 P; I# N3 v* f5 H
break; 8 J) y. V6 ^# V' v- T0 O
case "Fri" : ! R3 K( C) L' B/ j- Z
echo "今天星期五
" ; $ _0 z- _4 z+ o, ?
break;
( |8 [- N# F. d0 J, hdefault:
6 p( p" Y- Q# ?3 f3 Iecho "今天放假
" ; ' h5 Y3 c5 q. W+ K
break;
1 K7 ~% Q# K8 N8 d} : d5 @" w* w' H9 @5 a+ O, c# c
?>
/ q& T% y  P/ |3 E这里需要注意的是break;别遗漏了,default,省略是可以的。
$ _$ O7 R. K' h) v7 }
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

$ U/ [  [. u! T4 @+ E3 z十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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