返回列表 发帖

十天学会php之第二天

php的流程控制
" N3 j: S& Z  D# @% O" p% s, V& e  C! C% \/ R
1if……else 循环有三种结构

1 d0 o% C% Q5 u; m1 X4 ]. ^第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
; A" I9 F/ k6 Y
2 H6 P% o, c. A& }( Zif (a) { statement } + W( n8 [" U. ^9 o5 \( |
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
4 P3 z5 [7 X) I% n4 `. c, y
范例:本例省略大括号。

$ R; r; N0 a% N
9 g) L% q$ x% D" z! O<?php
7 B9 \0 B% R; M. Bif ($a==1) echo "我爱
php" ;
  J# y4 D0 J* z?>
  ?  k* t1 j' r( }4 K9 Z5 ?# Q% N0 H6 a; k2 f
这里特别注意的是,判断是否相等是==而不是=
9 `* N0 H% A8 [5 K4 J3 [/ D
范例:本例的执行部分有三行,不可省略大括号。
  v1 `% e2 r) z+ w6 G) ^

4 Q0 w1 C9 L4 U. w, x6 Q2 t0 ^<?php
: E9 J4 V/ w+ t; iif ($a==1) {
5 ]& y* R( P7 ?; }% D, M; _echo "我爱
php" ; % `/ ?0 l3 a3 l4 V$ I8 A
echo "<br>" ;
0 Y+ C2 N# E1 Z5 D9 H} 4 _( ~: f" f9 @5 D0 ^; @
?>
2 R9 `/ w9 H: K8 z, x$ Q* H/ S" a3 {0 H3 Y
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

6 Y% J3 F- y" a9 ~- v2 r# B% i( n' i* B! F; `$ x9 C
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
, G" u0 U0 Y: F& L
<?php 2 w  U, q  L. v6 V4 Z
if ($a==1) { % t7 Z  k* k! e2 B; }; o3 k
echo "我爱
php1";
2 e5 _- v" V4 _- zecho "<br>";
$ D. M% Z" e/ h5 s  G1 L} + ~9 c6 t3 f! E0 t5 t% Y
else {
, [! Q9 Q  e. h) S/ d! s1 I" gecho "我爱
php2";
0 J2 P7 M! Z/ j; J5 ^echo "<br>"; % V# r, T% \0 [2 G; Y' W. g
}
) j6 K' P. c, N- g) [3 x% {?>
; J7 ]6 G  h6 }  p
! ?( C3 U0 Z4 J( |第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

' i: I9 Q5 _: i. a直接看下面的例子

, o) j4 T9 K6 {( n8 G8 s<?php 5 r; x& V' f( {+ U
if ( $a > $b ) {
- n9 B- z1 s% x: k0 Techo "a b
" ;
$ {% @4 m3 t0 w+ e& c} elseif ( $a == $b ) { ( w/ o; ^9 S2 P% \4 u; b0 u9 U
echo "a 等于
b" ;
* t+ a) f. ?/ N! |4 N} else {
! m* [2 X4 G: w' }echo "a b
" ;   `: ~6 ?5 ?1 {& f/ D$ P
} # Q2 |1 p/ u& N9 {
?> $ I# X, U# r( n' d, p
) o( q2 x! c2 d3 \
2for循环就单纯只有一种,没有变化,它的语法如下
: C! e/ ?! t* {3 F
" S! e0 ^% L4 G
for (a; b; c) { statement }
# o. G7 B, V& Y7 x7 e其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

7 _6 R2 n: R/ t8 b. d) d: V# ~. h下例是用 for 循环写的的例子。
3 ^6 f9 Z1 Z8 m) U. }; X' b, t
<?php
% U0 u7 i- ^3 L8 [& \& F/ ofor ( $i = 1 ; $i <= 10 ; $i++ ) { $ ~! \: V! k7 e* G4 E" t
echo "这是第".$i."次循环
<br>" ;
( k8 x4 T: t+ C7 t} 7 q8 K! f7 H6 }0 C
?>
* Y2 S# Y( k3 R) R3 X+ `
; ^, ?( A  K# B, v3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
6 H! U0 d5 {, Q  \& b
语法如下:
8 e* ~! m4 `0 F1 f5 ^( \- N7 i0 E% G" Xswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
+ S% s+ ^. ?! v7 ?' Q' S! H
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 7 c3 d7 h1 r( ~8 ]
! b: ^8 G' X1 @
<?php
1 b: l9 G% B: K7 H6 s3 T1 o3 Bswitch ( date ( "D" )) {
1 ?/ h8 D7 P/ H! u- K; l. X6 L! Ccase "Mon" : 1 D0 R# V! |9 ^/ E, o9 v; S8 J
echo "今天星期一
" ;
3 S* ~+ v/ A+ n. k0 _/ t% K/ ibreak;
$ H7 i7 G7 |5 b- H* ?case "Tue" : 8 c/ T4 |  v# U1 i; w1 C* i
echo "今天星期二
" ; 5 S7 b/ O: ^$ N) f
break; 9 z. a5 h, C' ^5 {; _& ^1 K" g6 l2 U
case "Wed" :
" K' k$ n* A& r$ H3 Oecho "今天星期三
" ; 7 d) k4 ~, O+ K) Q/ m
break; 1 s  g- Z* V2 V5 l4 g4 `, b
case "Thu" :
. Q8 t8 v! ^6 P3 F/ \$ s5 xecho "今天星期四
" ;
' |. A0 j/ T: @( F- x8 V' `break;
4 f; R3 u, L, [, r3 W" ^case "Fri" :
, G& s- m& _. F  b# \( Xecho "今天星期五
" ; 3 R: _. O4 ]7 }7 Y. i6 I7 |
break;
& c7 j% f$ I' M9 s% Adefault: , d9 V" v  {6 o) n
echo "今天放假
" ; , V  [% U4 l9 P
break; 6 f( a( s1 _* x1 ~
} 1 k, e% k" ]8 N( D0 u  u1 i
?> 4 X, [0 g9 U  u
这里需要注意的是break;别遗漏了,default,省略是可以的。

3 n! q! w8 r5 z. }: o) s很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

5 N% ^& O+ f6 `6 D- `/ C# `3 ~- u十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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