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

十天学会php之第二天

php的流程控制
$ P% Q- r: g: b& W/ E% u* C
! f! p& c- \- R5 g- F1if……else 循环有三种结构
& S" i, i# f: i$ A
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
; c# |5 y0 h. n2 y6 U9 l2 W4 A% r$ D: [, D1 I3 I  D) y
if (a) { statement } * M9 T7 ~1 d- W4 K# n0 n( ]
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

# D2 S# e7 Y) i& S; v& A. @范例:本例省略大括号。
# z- n- ]0 J) a8 J- `+ T
# U6 L& \- v/ B/ x2 y
<?php
) u" n3 [) m% B8 D# Pif ($a==1) echo "我爱
php" ;
" P4 [5 O! G* j8 e?>
0 r2 X# @6 Y; p0 z3 ~
6 J$ l0 e6 U4 s  ]  V& c4 C# B这里特别注意的是,判断是否相等是==而不是=
3 ?) _6 I0 C7 g' ]0 |8 e
范例:本例的执行部分有三行,不可省略大括号。

: J- }6 T8 s2 v( k$ s( K) O5 v* e
3 o- @- F- t( a6 Z4 |! X<?php
" G4 ?/ c5 j* T4 u7 f* t. v, sif ($a==1) {
9 H- Y( Y; E% f) G5 ^) J1 Cecho "我爱
php" ; , ~8 d0 s0 E2 o0 H6 b
echo "<br>" ;
( u3 v4 ~# H2 p1 w' G* `}
% c8 ~7 ~/ }% C* }$ f?>
+ ?* `( W  ]' L) u& g" L' j
$ Q) t! _1 O! Y8 [2 I/ v, W第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

- B- o* l" y( ~# h, `+ Z& {  B% H" Z% _; i- t, ?+ t# {
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
' k$ E' Q: l, b4 G% k/ _& F
<?php 2 p# g. p/ S9 q/ R( n
if ($a==1) { + ]" ~/ W5 K- X7 W$ A# c4 B1 @
echo "我爱
php1"; 7 c& e3 o. L: e) d1 W3 y* S
echo "<br>";# m+ G( Z$ b# @( c$ b
} 9 k  n8 @8 T( I% t" L# b+ {2 g2 H- y
else {
# I- M; ^7 I! Iecho "我爱
php2";& L( C# x% P9 F% e
echo "<br>";
* b  K& x) ~' d} 2 w7 ?" G1 I0 X4 e4 n1 v
?>
4 C8 x0 [" i) C. P: v1 |6 @0 R/ s( v: ]% j2 n' ]9 E
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
; \. B( K& S. D3 j; B. Y0 t. e
直接看下面的例子

( Y6 c& F, v/ w) v3 b  Z<?php
3 a3 |% G. Y7 w9 _if ( $a > $b ) {
* M1 h; _. n  |, kecho "a b
" ;
# v* G$ |  B9 V  F* ^* J} elseif ( $a == $b ) {   h' p0 a& S* H; N/ K
echo "a 等于
b" ;
3 w$ _. n2 p% D/ g* W" h+ ]  Q} else { 8 v! @0 s( }. r) ^: h7 \
echo "a b
" ; ) x2 c/ C8 W5 o+ q$ z
} ' [0 h5 t4 Y. e7 d6 y' o, W. E
?> - b- b7 W2 H. T* G1 |8 T  y: `
% |! f" q3 x5 k4 L) G4 Q+ J( O
2for循环就单纯只有一种,没有变化,它的语法如下

8 n; ~; w, s. S8 v6 j7 m7 U4 ~+ p
for (a; b; c) { statement }
) y/ s7 M; K' r* q! e# T' C$ d! ^其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

5 h) B- z- ?+ O下例是用 for 循环写的的例子。
: ?3 D: n# c  P! \
<?php 5 C; T/ [; R0 H9 D
for ( $i = 1 ; $i <= 10 ; $i++ ) {
$ N" d' _% d; E  a$ i% j6 ^' s: Hecho "这是第".$i."次循环
<br>" ;
# Y7 m1 D: n7 ^: M+ A1 O, N} . w' `' q6 ^; R) j
?>
! J5 L, i$ F& b) O0 C8 T4 {  h6 Q: `) A
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
: z2 _! ~4 j) M6 D# T: _  \' B
语法如下:9 z2 w! F9 X5 f1 h" u$ k( U& G
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
7 q4 M; m( \; ]4 K+ f. e
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 1 R' A# C1 v# u6 r5 o
. n3 ^  N' K2 G; m/ [; e! Y7 l  D" `* R
<?php
( z) B: l% T3 r3 r$ bswitch ( date ( "D" )) { * t* ^- ]7 F" L- K
case "Mon" :
8 x# f- B+ n$ f& S2 O$ Decho "今天星期一
" ; 8 R4 N# z+ a) _" P8 m" `& m
break; + x4 M. B" O/ C; J+ L
case "Tue" : / X* b# J! M$ n7 o* S0 x
echo "今天星期二
" ; # J1 a" s  H6 x- A5 y
break; 2 p2 s: K8 r, t8 E) i0 w1 {. o- J
case "Wed" : 5 C: z) a+ F* j3 e: g  `" {/ D
echo "今天星期三
" ; % J0 R4 |9 a% @5 [$ W3 x3 E7 M. r
break;
  z3 g$ v& Z2 O: T7 h9 acase "Thu" :
1 l2 z) r, f) l- e8 _9 necho "今天星期四
" ; % T3 {2 F- Q9 b! h& H
break;
4 J& x7 a1 Y7 Q8 C1 u7 zcase "Fri" : + R& U: R) [+ |; I- p4 Z$ ~  c, I3 e: B2 ^
echo "今天星期五
" ;
  E" e# n% Q& \0 r6 z, ubreak;
! t- M9 O9 k6 l" M2 Tdefault:
, V7 L  W* Z% p/ ^  I/ Cecho "今天放假
" ;
% j8 V- h, X7 y6 X' ^: _break; 8 o7 F# O; L9 [1 N# l/ V2 ?  l
} 6 z9 Z; r4 [. [+ H+ ^' B, U& z
?>
- i: a* F# }' S% F" f这里需要注意的是break;别遗漏了,default,省略是可以的。

) W6 ~# l' z- M! \很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
# j( K- W2 [8 p: u( o
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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