获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第二天

php的流程控制 8 b+ P( q1 T% \' d

: k2 f4 ]& R8 Q1if……else 循环有三种结构
" `; C% P- h* x/ L, B& @) A! j# j
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 4 u# f& g2 {9 ~9 P+ u
1 w4 P  H8 [( h0 d
if (a) { statement } ) \- h, `, r! f
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
  N5 h* [8 ~0 X' y
范例:本例省略大括号。
! _9 P5 f8 L& }3 W, Q/ b. e

# U- q, e; U" L<?php % @) h! Q' g# e9 W. d
if ($a==1) echo "我爱
php" ; - C$ o1 E4 Z! g% F1 S
?> ) A1 l4 Q  u! }/ \! Q+ t
7 e9 L$ U% S5 [; G8 X- V
这里特别注意的是,判断是否相等是==而不是=
$ @: M" M/ R( ], Z3 l4 y/ ]! h1 ]
范例:本例的执行部分有三行,不可省略大括号。

3 ~' F' @( J8 ]( s
# A( k7 i9 d' ]% {  ^9 }<?php
* u& S0 G, Y  ~5 y; t  I9 iif ($a==1) { % e; F! D% K$ {$ i
echo "我爱
php" ; 6 Y' ?; k% S( s+ H0 C2 U5 {
echo "<br>" ; 6 L2 s: y# B" J4 l# {9 H' v
} 3 d8 O: t0 D; R" B
?>
* K) m# ^/ z3 j( N! e' p/ `
1 U' V% D! E/ n2 r/ L. z第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
" K+ t/ _! f' V6 `4 O' k/ \; [

, k  \9 J9 {5 c9 Yif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
. ^5 E  u- z7 T6 a
<?php 5 O; s' u6 v# K' E/ Q
if ($a==1) {
  S- f- T- x- b8 A! o7 Recho "我爱
php1";
$ y! Z" {7 R) Q' H9 fecho "<br>";
. w2 T. n% f5 z1 d5 k4 @* T} ( h& I) V# i# i4 \: J3 \
else {
8 r- o  o' A' I' s. W0 ]3 Secho "我爱
php2";% {5 j: j* X- }+ n3 z+ \+ ]) y
echo "<br>"; $ ?; M9 P3 E, e# e5 p0 N4 W
} ) S" ^1 l2 o1 Q0 t  o9 z/ k9 @
?> % Q7 T+ P; w: `" R8 X
/ V. W! O: `* @" P, Q$ Q
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
' `& t5 M  c4 n* ^+ n, }$ W- k8 v
直接看下面的例子
( a/ l0 t/ H; D* h$ S
<?php 6 m# c% ?8 n3 N
if ( $a > $b ) {
: k2 e% y+ H; ~/ d+ j& ?! k2 gecho "a b
" ;
5 i. m  B8 g) v6 {9 d} elseif ( $a == $b ) {
* j+ {0 E' I& `5 J) ?9 x9 necho "a 等于
b" ; 2 T& H. A# h5 S6 O! \
} else { ! V; M4 y* ]3 Y: q3 t+ ~
echo "a b
" ; * B0 x; m* i. G1 ?7 G: ^
} 3 y2 b8 V1 d' S8 x5 A
?>
7 R: u3 z: m" `' |4 R. Q
( c5 |3 x0 a8 f: E4 S! o* w3 N2 f2for循环就单纯只有一种,没有变化,它的语法如下

2 D& n4 Y$ v$ x3 U
1 q) p$ Y  _/ ~, d  Q7 v7 t! ifor (a; b; c) { statement } & K$ `2 A: h& c# h) s$ s
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

! R& g2 K& o+ J7 [5 o下例是用 for 循环写的的例子。

: f9 \9 u, p- `8 G3 ]2 y2 d  M7 O. G<?php
0 \1 ]2 Y) k$ S# ffor ( $i = 1 ; $i <= 10 ; $i++ ) {
6 r  J7 T5 a7 Q3 D) @5 \7 ?/ O  Oecho "这是第".$i."次循环
<br>" ; ) e# J/ I: O/ H  m5 S
} & U8 I3 V! U% C9 L
?> , Q2 o; ?! ]/ f" W$ v! W& y

7 C. K9 b+ g$ i3 O7 n! w% \; G3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

/ O$ K  O1 H: [% \# z! \语法如下:
2 d, j9 w% v" Y; L! Mswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } * Q" ?4 Y! l" \7 h
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
; l6 `8 s" s4 A& M* |6 a  O& Y7 n; W3 h
<?php ( C" x4 g/ K9 c9 j& h: W
switch ( date ( "D" )) { + ~  o7 r. e4 `
case "Mon" : 6 G- e" U/ v9 M0 s' \
echo "今天星期一
" ; - i" P9 n9 L( U  Q
break; 3 b) _0 J; ~7 V/ ^
case "Tue" :
# O( D7 F8 x7 M# S8 ~echo "今天星期二
" ; 7 K# N: x4 l( Y# ]. Q1 ]) l) j
break;
2 l6 L. K5 Y$ F9 M0 t* R1 Ncase "Wed" :
/ V! ^# [- X1 X" A0 _3 gecho "今天星期三
" ;   I1 R# f0 K* V! [: U: b) c2 v
break; , d3 T, L  \; @8 j% i& q
case "Thu" :
- I: G2 d8 `) V1 s3 h4 Zecho "今天星期四
" ; , T; S4 `& @) S/ {
break; ! i4 y. \) I) R* \
case "Fri" :
1 _+ j  H$ B4 e% M1 O# `! a2 cecho "今天星期五
" ;
: J, z$ R; v( k9 P) `6 A: ]" [; wbreak;
/ [- o/ ^* Q: E& cdefault:
; ~/ v# E& l5 i) x" R% ~9 T; Q& ~echo "今天放假
" ;
  k' C0 ?  j- f5 T5 y' O3 fbreak; $ K4 K" K- _! q' `5 U+ t
}
- i5 j) d$ p# Y- G3 a( x4 @?>
7 S7 u. s; |$ p2 r! Q5 P3 M+ ?这里需要注意的是break;别遗漏了,default,省略是可以的。
1 B7 T* F0 X7 v' n8 r' G6 G$ A
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

) Z3 p% d) Q& V. y5 ?: J十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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