返回列表 发帖

十天学会php之第二天

php的流程控制
( u7 ~4 R, _/ W% U. q  |
2 u7 {6 s; F  V. f$ k& M' ?1if……else 循环有三种结构

& |9 x0 q; G- ?4 H8 W0 s0 q第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 9 @5 {7 |8 k! w$ A& S
. `3 m! u. v3 e2 I# z( o! N, B
if (a) { statement }
6 o: |4 k# l* ]  M' f: s5 F其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
, n1 x' a8 f" |; J8 N4 b' S
范例:本例省略大括号。
$ e9 K1 ^5 Q/ h! ~+ A, A

* n& F: ^0 _9 Q7 G' M<?php / W' a( ], K4 ?( k+ b$ i+ @
if ($a==1) echo "我爱
php" ; 9 _+ P5 R6 V* N7 ^& t
?> & w, W* r* f" J7 m

* a# N3 A3 S; E0 T这里特别注意的是,判断是否相等是==而不是=

) r, R3 ^* m8 D4 C1 l& `  e8 y范例:本例的执行部分有三行,不可省略大括号。
. R' h4 p3 m( F$ R
, ^9 k9 x* ^, u$ d: r
<?php , k+ t7 O# f. Z6 C/ W) @, ~1 \
if ($a==1) { $ J$ [  u% E0 s
echo "我爱
php" ;
! j! ^, p* H4 ]0 B+ Recho "<br>" ; - s" A7 v3 Z2 L0 I) M- t& s, O& S
} 9 L& O$ E- ~: C2 O" I
?>
' q5 @( g% y! A2 P1 g
* i, m0 A/ L: S& o5 M% b7 B4 a) G/ G第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
% _: l0 W, E1 j  ]: \

. b) Q+ q" s3 l6 sif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

/ O: t5 K: ~  Z7 ~- C- t<?php
2 U2 E# O) b" e- l* I$ t: e" ]if ($a==1) { , K# Z* p( A& o9 F
echo "我爱
php1"; ; p* R6 U) c8 K* L
echo "<br>";4 T: R5 k6 G, I2 [+ `
}
1 Z6 A0 `# e4 Z' felse {5 Q) z6 P1 c# m- z: A/ I* M
echo "我爱
php2";
) K3 ^+ \" L. e6 L; b, M4 w& q" b/ R$ Mecho "<br>";
( K7 [. ^. z2 }! c}
7 H* |) ?' I" H  e4 Z- R?>
4 h+ J2 V2 m% p: z+ p( z# T, ~/ L, `0 \- y4 ]
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

8 g* G9 T4 Q4 }' g直接看下面的例子
4 ]  q- b- T; U+ ?3 y% a+ M! i8 p
<?php ! K: C- B0 r8 Y7 h7 X( K
if ( $a > $b ) { : q! [# V! Q- H! ^
echo "a b
" ;
) u, H2 v+ O6 R$ [: m# ^0 v0 j} elseif ( $a == $b ) {
+ x+ `. p0 a1 F0 L; d, P2 Q  xecho "a 等于
b" ;
- i% s" \9 L# |. \} else { . A$ }9 o- o( {7 J
echo "a b
" ; ! ~3 Z- k7 X8 O: f5 L9 p1 i2 N
}
# `0 B, ?, E, t7 W0 g5 K?>
, C" h2 r0 C1 `, z0 a
4 C6 C0 [! Y0 x+ }3 f2 z2for循环就单纯只有一种,没有变化,它的语法如下
1 ?# x% _( `# L4 Z& B( _+ p  O
1 s3 B" w% O( ~; h$ O- n% \9 l8 q
for (a; b; c) { statement }
, a; W1 Q  V& K& ]$ e! Q其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
( F$ ~  }: l2 O, j
下例是用 for 循环写的的例子。

" X) N, _5 Y; X( w+ w<?php 6 d7 d# M# ~& l  o0 b' {2 T
for ( $i = 1 ; $i <= 10 ; $i++ ) {
+ m- Q7 ]7 p3 r8 D( s' mecho "这是第".$i."次循环
<br>" ;
3 ]5 W( @. O- z! J% k}
3 ]' h: O/ N. c' ~: K' P9 w! Q- z?> . F& U. T+ [$ P6 R4 m

( b4 d5 c$ n/ T, a3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

: e# a! y! A  v语法如下:
2 N$ q4 {, i- M0 k, l5 ]switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }   Q1 W- D3 M  r- t. l0 ^( V
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
$ U: g+ d6 ?! h6 o2 E9 o0 R* Y! X$ t+ t
<?php
4 d: c) K0 g) v. m4 l# ?- d, Cswitch ( date ( "D" )) { % P# F3 S/ f$ N% G
case "Mon" :
" y7 {  ^. K; q0 W7 ~1 Q1 Z6 H, wecho "今天星期一
" ; * v" r. h- P: y! d9 R
break;
$ U! M: {& I* w; T! lcase "Tue" : , K8 {+ U4 s8 `- e$ m
echo "今天星期二
" ;
6 C% d" M8 g; r! b/ ^0 j' y& _break; 5 p2 E7 F7 p' n! R6 v
case "Wed" :
" W4 g8 F* M3 l0 d6 b7 xecho "今天星期三
" ; " y' E3 X: Y) E' O
break;
. X8 G# D0 t+ Acase "Thu" : * k& c# }8 G9 V  x( t1 I
echo "今天星期四
" ; 6 M- E. i+ N) Q) e+ E) w
break; 9 Y* v' B( G$ s8 S
case "Fri" : 1 O3 Q9 I/ Z) _8 m
echo "今天星期五
" ; ) l7 C% H$ W3 T' H) N5 c1 |
break;
3 a2 z, J# @0 c" F, h! Zdefault: 8 G+ \& D% e! J8 r& y/ o
echo "今天放假
" ;
! ^+ E- t2 s! m- j2 Fbreak;
4 Y/ `6 A( G* c) S( P/ d}
4 g6 H  Q0 o' ]- p?>   Q) u, T: l# l
这里需要注意的是break;别遗漏了,default,省略是可以的。

6 X3 }1 b+ k$ s5 u% _很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
' z. u$ M2 ~. Z& ~; X
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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