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

十天学会php之第二天

php的流程控制
, b7 ?$ Q; @' h+ t
- r/ S& x# u: P1if……else 循环有三种结构
5 g( g3 O! K1 O% `/ e
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: . F  N/ ~. j+ Y  v# [

4 t9 u% @( B4 j! V9 [" v) G# Qif (a) { statement }
: a' ~5 v/ j9 k$ `, C( P其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

0 w8 b" }. f; y2 e3 y范例:本例省略大括号。
! Q. A1 h. `$ l& ?/ P

" g0 Q6 U; K5 [4 l( C<?php 9 k- @3 f: @1 x8 b' M, o
if ($a==1) echo "我爱
php" ; . {# Y2 O. P5 |% Y
?> # M8 E7 _, {6 U- ^( c$ {

! Z  z" B* X. A: A9 N( W5 r7 R+ i这里特别注意的是,判断是否相等是==而不是=

; K- s! D6 ?, o) F范例:本例的执行部分有三行,不可省略大括号。
* x6 h1 h/ ]& C: G

  G, U& R! ^5 a; Q<?php
. |. x7 n6 U1 \# Qif ($a==1) {   N+ E& T, C& |! ^7 y
echo "我爱
php" ; ) W6 t+ z/ X" m( Q+ e$ B) t
echo "<br>" ;
& j6 `4 y: K9 |4 `4 a} - N+ J, i! [; N' X! V# g& ]
?>
2 u, i4 k, Y/ Y8 f0 y* R$ `8 i
2 t7 x1 n: p. _. n: w- C% y4 g9 t第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
' X) G5 M/ D2 P6 s" |) I2 ?% f% D
- ?1 W6 `- l9 f) n) r# l
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

* A8 D0 y* _; x2 ?5 T; W! d<?php . J3 v  T4 G7 c) {* x8 y
if ($a==1) { & j( c. L! Z; d8 O5 |- s, \2 b
echo "我爱
php1";   R7 j8 W+ e( ~
echo "<br>";
0 J3 X$ i5 |6 j: x} & g3 l. i6 i) k3 n
else {
/ \  q4 f& w4 h8 i8 @# a1 ^echo "我爱
php2";- \# ^! A! N. M6 _" I: n4 s* ~! q. {
echo "<br>"; & E2 @, \' L0 K+ H
} 1 P4 `/ A  [# r. ]- Y, T, Z; r2 K
?>
0 B7 Z. ^! X9 v* A4 u0 _. x) g5 m! k9 `0 ~; [9 L6 n
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

/ [8 M" f1 I$ Y  |直接看下面的例子

6 x+ X7 H; f. q8 Z6 X% t<?php
; X" H/ ~2 o; x5 z  Uif ( $a > $b ) { / d( |% q2 M* w* N# D
echo "a b
" ;
% h7 C% l! E1 s/ h} elseif ( $a == $b ) { + A) A: \9 }4 S% ~4 K  g9 T: d
echo "a 等于
b" ;
- H3 j& B. O- ?* V; m* F9 @9 k} else {
' C0 j/ R/ ]+ R  x* `- wecho "a b
" ;
" Q3 k! l9 |0 z4 U* Z+ B2 r" F} 1 K/ G8 b% A1 [6 R# j* G2 C" k" o7 w
?>   `3 i" C' j' O: {; H

  n4 \* x  c7 H% M- A/ K% T1 w- W/ |2for循环就单纯只有一种,没有变化,它的语法如下
  Y/ c( _$ ~. X9 n, ?

+ Y& ~# q2 F' I- U# _4 L) r/ Nfor (a; b; c) { statement } , f" p5 ^6 }9 x. G5 a
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
2 t2 [  k3 N# v  t
下例是用 for 循环写的的例子。
  h" K$ B6 I2 Q* v/ M
<?php & i2 U# p' Z" N) W1 `- Y
for ( $i = 1 ; $i <= 10 ; $i++ ) {
5 E9 B& a& O. {& F, k2 m1 uecho "这是第".$i."次循环
<br>" ; 9 h3 m/ _/ L" B" {
} 9 ~; a7 @: ]" f" o0 l
?> ) g7 `: d# A9 r. n$ I& N  o

8 @& e8 }% W0 \8 @3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

  K' b* U* m7 l5 Q语法如下:
6 z8 y# y" Q8 c! T6 iswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 7 A: `0 L! e, F" b( W3 |
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 + c& W- d8 o, ]" `. j0 T5 ~) V
) M* f% E4 R8 Y* g! r7 Y  Y: @2 v6 Q
<?php " ]" Z' b5 j; ^' k& I% V. h
switch ( date ( "D" )) {
# Q+ ]1 m) L1 K7 ]  D+ l6 ?case "Mon" : ' F2 c' m" j2 Y9 [& d  x+ _* f
echo "今天星期一
" ;
5 i) T2 R/ g- ?2 l) O* ]break;
3 n: f  t) `8 b5 h3 ccase "Tue" :
8 W+ F0 v" Y- v% M# `echo "今天星期二
" ; 2 }) J, a  q, v/ Q! @3 G# C
break;
) u' {- {4 A6 \& q8 |* wcase "Wed" :
0 T8 C" g( B  }$ d- v0 V! becho "今天星期三
" ;
/ S0 e+ F% x, ?. ^4 Z! A" C. D( jbreak;
3 p% k9 s3 W8 ]6 }case "Thu" : * E: K7 {8 o( ~
echo "今天星期四
" ; ) G1 E+ I% Z; n: e1 ]
break; 7 j/ ^' i# F. l$ j
case "Fri" :
: k: F: z% S; a  [# X. T/ Gecho "今天星期五
" ; ' G6 O9 ?$ J, _
break;
7 y6 _, f4 j, L% @; Adefault: ; k& [5 t- ^. O: u9 `
echo "今天放假
" ; ) ~9 u" H  u% w' \* X. c4 `
break;   T# e! E& o' ~6 x6 `5 t. N
}
1 K' Z4 w5 F) ~) Z8 l2 M6 Q3 |?> 6 D6 |  ~# C1 K8 S
这里需要注意的是break;别遗漏了,default,省略是可以的。
% V& D# E% Y$ x4 b% ?2 e1 e
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

" v( y. T1 H# M5 \* W/ @! `+ Q十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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