返回列表 发帖

十天学会php之第二天

php的流程控制
4 b( j/ A( h# U( V) c" v, \/ R& ~; B& A' V& G' n, X
1if……else 循环有三种结构

: Z) ^) J2 e  r2 F3 p: V4 _第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 7 a; F8 c5 Q# k

% @) e7 [6 V: J5 A+ }$ i' iif (a) { statement } ; ~) U( R: H7 @" d) C" e
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
' p, u& Y* |5 s4 @2 \" Y" E) K
范例:本例省略大括号。

  j$ U8 |6 B2 `( G( H+ d$ N6 [5 ~# c8 l) ?
<?php
  M" E* Y- t0 N$ b- Z8 l0 kif ($a==1) echo "我爱
php" ;
' c  ^! V- _' H. p- O?>
/ Q3 q' |- l5 l6 `# U5 }% S) w; r; h) S* E3 ]) j* F/ l  B
这里特别注意的是,判断是否相等是==而不是=
- ]/ ^4 F) o. R) q# K& e
范例:本例的执行部分有三行,不可省略大括号。

) F1 a2 Q5 J( o$ B; x3 }/ e( D7 H8 K* I. e( A
<?php
0 |1 s, E, z$ Hif ($a==1) { $ O& X! G; n  R# h, ~3 ?8 U/ H
echo "我爱
php" ; " j. [7 i2 n9 Y1 {. n
echo "<br>" ; & z* T2 m* V" W
} * `% y% i! g4 u" P
?> ' a4 G9 R6 s0 N( r! E0 Z0 o2 q

# C! {2 ]# Q' @  ~+ Q5 |第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

* @2 _  t4 x) z- v2 P3 O7 ]1 W, g- R/ z) d& F1 c# e" X* T
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
+ ?$ S# E4 o. Y5 U7 |  N* t
<?php & g: M  \- H- w- h; k
if ($a==1) { , g3 I  N3 o+ {5 Z
echo "我爱
php1"; - X& r- j4 }5 }4 ^
echo "<br>";' U+ X1 ?" T- y* Q
}
& k1 s7 c0 f  H8 g  P& @  gelse {; L5 D7 R8 V: b! o
echo "我爱
php2";  K( U) R. @7 K- p+ t
echo "<br>"; ' Y4 w: \0 j! b" R: p# p3 G6 n
}
5 G1 X% _1 z* |8 S5 b) v+ W3 J  Q/ K?> 4 V" W. _( O# [# s* h# N, C/ O* T6 G
3 @+ Y7 z  w. D/ i
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

" T1 Z0 s4 `% K( Y+ \. |6 s直接看下面的例子

" f9 V; r, l7 S, Y) M<?php 2 x, O& R) t5 A% T
if ( $a > $b ) { # r: v' E) b+ z3 x
echo "a b
" ; 4 y3 y1 c) _3 J1 K7 l
} elseif ( $a == $b ) {
7 K1 E7 o' X+ V# U0 C. becho "a 等于
b" ; 7 A& p, F( I! |1 l8 `
} else { / z% E) T2 u. q# m4 J0 g  m5 v0 R
echo "a b
" ;
5 ^/ u# X& v" }} ! ?& L7 u  h2 |4 q: S. Y% r2 h! c0 Q, ~
?>
* F- `, G; @( |3 N, x1 V% W( n
8 {. {# H+ r& W6 ^2for循环就单纯只有一种,没有变化,它的语法如下
/ D' e' F* x+ m' ]

# F- a8 e+ D% Qfor (a; b; c) { statement }
( t9 q# p, g  m& T% j, z8 c其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

5 H1 R5 `  L; s4 A  ?下例是用 for 循环写的的例子。

  S- E) E2 H3 s$ J' C+ h<?php
' i! D  }8 s  s; b3 Q- [for ( $i = 1 ; $i <= 10 ; $i++ ) { 9 @; A- c1 Z& q
echo "这是第".$i."次循环
<br>" ;
2 z+ R- a9 u4 m}
4 ~( \- B* r5 c( |?> 2 E1 U4 `# g2 S9 {

/ @' [% P6 S5 N3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
+ N; x2 i- h+ Z; v4 b. y
语法如下:: x' C0 c' ^- Y) K: \
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
) j  k7 o# N5 c* R$ B, T1 r1 ?- t
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 " K9 }3 C- y' |+ z2 q2 D
8 F, D, Z8 G+ L' y  N1 d
<?php
7 V$ W* D* ]$ a, x8 f; k! y6 fswitch ( date ( "D" )) {
2 Q; L. g. h, D% rcase "Mon" : 6 ]- `+ x$ o  t: {$ [* e! p
echo "今天星期一
" ; 4 G7 b8 X: r5 c& i2 v% u
break; % l$ }( w9 v. b9 T
case "Tue" : ) r. ~5 t0 m& w( E
echo "今天星期二
" ;
- c) @" @# E( |) ?3 hbreak;
# @/ s% T) R5 c* gcase "Wed" : $ k4 c) h+ v6 y
echo "今天星期三
" ;
8 _4 s, _/ _% G9 Ubreak; ! H  x; X" D0 R
case "Thu" : - X7 \, w1 K. F8 p5 v0 G
echo "今天星期四
" ;
/ u0 b/ g" o; jbreak;
7 W' R$ f, K. f) [9 e/ g' z' ]  y) l  y2 {case "Fri" :
1 T  y0 a0 g" ^- \  D$ B- Kecho "今天星期五
" ;
, `4 Q8 X9 D  ?1 h7 d6 w. p5 Bbreak; 6 E: |: U3 s9 T+ m& ~* L
default: $ r7 [/ ^" F- o: J5 D# g
echo "今天放假
" ; - G" A6 Q: O& u8 {5 k* r, C% b
break; / x( T9 N  @- y! q8 J
}
* y7 n, I. ]) J: q3 d% x9 S5 {7 T?> 6 ^" K! b/ s) ?0 Z5 f& N
这里需要注意的是break;别遗漏了,default,省略是可以的。
- t! y& C5 m6 k  J8 y
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
  c9 H2 r6 |/ N8 K, O. V! K* u
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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