返回列表 发帖

十天学会php之第二天

php的流程控制
" ^2 ~! M+ z! i" S) N7 X4 y: p% C
- ^) o0 `8 r+ y! g; U1if……else 循环有三种结构

9 L1 C" V) N6 E, `- O0 k$ ^7 d第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: : e3 H  m& W6 j6 Q' N" a$ a1 w

0 e3 z* W$ f4 r" ~5 e' e( w" @if (a) { statement }
$ o) J7 f3 z5 w: a5 F( z其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

! x7 s6 X  L0 e范例:本例省略大括号。

" p' _9 i" {. s: o5 n0 D0 h$ p7 E( d8 P- Y/ B% S' B1 ^
<?php   y$ V4 F# P3 j' S, `7 F
if ($a==1) echo "我爱
php" ; . L  k% U7 g% a. B3 {6 _
?>
8 j8 F2 N" P  u0 |6 o
: a( e' I& D5 S. u" I2 ]) b  r这里特别注意的是,判断是否相等是==而不是=
6 s2 G& F# U, J2 J( ?
范例:本例的执行部分有三行,不可省略大括号。

6 [' Q* y: u" K' g8 Z8 Q8 Q1 Y
& x9 D3 y+ N9 A<?php
$ G) X, b; G3 u, kif ($a==1) {
" s: {  R' t7 m) ]" N3 T+ d# S; secho "我爱
php" ; $ }& R7 @# }" _
echo "<br>" ; 3 f5 L* E5 r) `! p& q9 M
}
: `! `) m, F% [; F) S?> 9 z, Y; t% H& g+ _- h4 n/ ~9 q
; P: \4 l/ A' W! j" T
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

; H0 [3 a/ ]+ ^9 Z6 ]' h; M# U# P8 O# C# j# x' G! F, C8 ?
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

) n0 n0 H$ k: s" \<?php
" f  H& y* E4 sif ($a==1) { 9 I, J  a7 Z: I9 m/ ~: @) p
echo "我爱
php1";
, D9 h% [; d$ ~: q9 [echo "<br>";
# L. m3 a0 T1 E" V# h+ x$ r& t3 Z" i}
5 G* A6 A% s" p6 G, c% ^: e" p8 Zelse {: X4 J# i% I2 O2 S+ \
echo "我爱
php2";
2 w; X% J) a1 |9 H1 N, pecho "<br>"; 0 S# R  w# A7 \
}
; i2 J+ T8 b7 G2 K) ^# Q+ J6 T?> , ]+ O8 R  K2 b. W
5 n' w) s8 H: J) b4 V& y) N
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

$ v7 ^2 i3 x. \7 g直接看下面的例子
& N( y( }% @# S2 N; Y+ a
<?php
0 E! N6 E, q- f# f0 Tif ( $a > $b ) {
8 ?  _; p. {' n9 q- yecho "a b
" ;
9 P8 Q. b# ]2 u! w1 ?; ~9 W} elseif ( $a == $b ) {
6 B) R! E* I1 g# Kecho "a 等于
b" ;
- h, w3 a, n/ A* G& X} else { 9 t. J) N" f$ T& G5 T
echo "a b
" ; & r+ g2 b, J! k% g$ ^4 Y! \7 q9 [/ y
}
  n2 d( r5 I' D+ }?> ! A4 v! u# D; k) Z% V: z5 p* }

+ B8 p9 M& K6 ^9 q2for循环就单纯只有一种,没有变化,它的语法如下

7 g  ?$ n! B+ s6 N# i" C9 [2 H' {4 P( Z
for (a; b; c) { statement }
: J% R& p! M( Y其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
$ E1 A8 T! i' l9 V
下例是用 for 循环写的的例子。
& v; @" g2 g8 i& N3 X" K; ?* g
<?php
& A$ r+ H! I5 K) ^$ s: p% c# j, sfor ( $i = 1 ; $i <= 10 ; $i++ ) {
) D& `4 Q% u  X+ y3 Cecho "这是第".$i."次循环
<br>" ; ( a+ ^# q7 |) A# H0 I* u  b
}
4 y8 j! \( w5 @, k?> * |& h3 o" W3 s0 h+ b
! x) y) @6 B! n+ s) H3 [
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
# c7 x- X5 E2 W5 J8 ^$ D6 i
语法如下:9 m! y* ^1 D8 e
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
( |; G. _. U+ H# L! [, f" l8 N" V
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
) G+ c* k$ x/ k7 e2 w* x4 Q( ?: E5 D; W) t' X0 ^  @$ b
<?php ! d  {2 S6 E3 l" t5 u2 O
switch ( date ( "D" )) { - Q9 u5 h4 X2 K' H/ G/ k
case "Mon" : 4 Q! X6 l  f& p
echo "今天星期一
" ; 5 d# ]( }: l6 ~) g! A3 E& R
break;
& q1 J5 ]- F' |( |! Fcase "Tue" :
- }2 M8 ~0 M1 }7 X# Y% necho "今天星期二
" ; 4 W" d; x( d& s5 G1 J& S
break;
6 M6 v% J& K8 v/ t" E5 j1 x" vcase "Wed" : ) k+ w2 v4 j; H
echo "今天星期三
" ;
( F0 C, ]& H" G! t8 B# r; mbreak; ; U0 c' |/ T+ [0 {4 b! R
case "Thu" :
2 \0 @& A6 C& j8 R7 W' vecho "今天星期四
" ;   A4 K4 ~& S% p( c) E) D
break;
" E5 D& h. O5 B) D0 N. Pcase "Fri" :   O$ F; S1 j- @# Z* v
echo "今天星期五
" ; ! \; k& |: d- i5 a# p6 J' f8 N) s
break;
+ H+ t6 }" L4 z+ U" ?. K. Idefault:
7 P$ G6 [' h( ?) s8 P4 Uecho "今天放假
" ; ' B" T3 e- h8 d# n: w% q
break;
/ {0 Y  p; C  [1 ^}
' u& Q4 K% S+ y' r# I?>
( s" {) N1 r* u+ @- m% G这里需要注意的是break;别遗漏了,default,省略是可以的。

% O+ x% f1 v) J4 q$ ]; q) s很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
6 {' S* y0 A8 t4 G: h
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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