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

十天学会php之第二天

php的流程控制
1 F8 [: o  a6 w: N" v
0 {) [" O' f+ T) e: l. G- Y. l1if……else 循环有三种结构
. y7 T" c4 n7 d+ Q  B0 o/ H5 J5 [* }
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ' a& u$ t3 n" R4 L. O( G
9 ?* C1 E: K6 g
if (a) { statement }
) Q4 O2 [& Z0 t- @2 W1 O7 C3 _% P其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
+ {  j+ b  K) [# ^  u1 G
范例:本例省略大括号。
" d. D7 V4 j/ \$ z5 j( w& `/ c
2 Z. _# l$ x/ c
<?php 9 T. E+ L' K6 Z8 @( ?
if ($a==1) echo "我爱
php" ;
. V1 Q2 [: W4 P' v8 n" _; A. K?>
" o  v* M5 D/ O; V
+ [/ _- x" y3 }) y" p! X- O这里特别注意的是,判断是否相等是==而不是=
, J8 V2 K! ?& e6 d) _5 w' j
范例:本例的执行部分有三行,不可省略大括号。
1 B) {3 T' ?8 n

4 [2 v1 M# G; X, E: F5 S. r<?php
0 L" M9 N9 {: N$ _# H! F6 |/ Fif ($a==1) {
, x+ k4 o9 r1 \7 Aecho "我爱
php" ;
3 ?) N6 O5 d1 d. C2 c- b+ v# Aecho "<br>" ;
  E% \1 n( F) u2 i$ h7 _2 N}
+ }7 N2 ]* C6 N1 H) i; e- `) o- {' Z?> . T) q- o" O' o7 l1 s. p
! [1 n7 J, F4 ?, f
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

$ V5 ?4 L4 Y) A& S* P' D2 R, _# B: \$ K7 ^' J, L. f: n$ u
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

3 A" d5 h$ r: ]" M6 b<?php : x4 B( V& S3 `% _
if ($a==1) { 3 P3 {* S" J7 D
echo "我爱
php1";
4 m1 R# P) x( Q7 V' F$ fecho "<br>";  ~, W+ a' n, j9 i
} - J. D- T% i) i8 G% J/ T
else {
: O' v4 U+ m" c% s0 u7 W/ F: jecho "我爱
php2";" ?8 z8 {* x5 R$ x: e+ R
echo "<br>";
  w& n' L0 Z: N} / ]& `2 Y5 R( Q  a1 k2 {
?>
9 D" A8 t3 f" C* \2 n1 G' |0 U, b2 r  V
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
( E' Z! Z1 V+ g- ~) H5 ~
直接看下面的例子
6 ?: M) s* L+ ?; P* L
<?php
& P* Y; F& E2 U8 d. D" Q5 Yif ( $a > $b ) {
8 |3 G9 ]& f/ C& g4 Q; L  necho "a b
" ;
) u6 K5 v0 ]% |0 e* B+ q" K} elseif ( $a == $b ) { 0 L' @* k; A6 d
echo "a 等于
b" ; + F( O$ D0 N: f+ A
} else {
7 g; _7 Q  A( }" techo "a b
" ;
* l$ d* M/ i& R2 X, v. I- j( d}
  L! y7 A3 h% H" S6 _# [. ??>
5 ?' }* Q& g4 p7 u2 u& }
0 e0 f7 o0 y/ x0 q& o* R1 e2for循环就单纯只有一种,没有变化,它的语法如下

" w- K+ _, A& R8 h: V1 h! }- H% ^- M9 @! M( h0 W$ L
for (a; b; c) { statement } $ k* _; v0 J- a& v
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

' Q4 |/ X, U' z+ z! ]" s下例是用 for 循环写的的例子。

& r0 E+ @9 R  C+ K% f$ Q& _<?php
( e% H3 c/ {  r: V% ifor ( $i = 1 ; $i <= 10 ; $i++ ) { ; r7 f3 V+ W9 G! c, V7 U+ t) I0 ?
echo "这是第".$i."次循环
<br>" ; 7 r, D; @4 d9 R& o5 N6 E; |
} 9 G4 ], ~8 r6 o
?> 3 u2 O4 ^) |" B2 {7 Q. f

4 E5 I4 Q* L! a  J$ ^7 w3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
. t( m3 ~3 I& g+ b
语法如下:
* d# h1 q# d9 G- |2 t+ Vswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 b8 \; ~6 b! s0 W0 G; o1 B# a
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 4 [! S9 w$ x, n6 r

+ w- M0 W* G1 f+ q: Z<?php
  A( ~1 n6 Y7 a2 O! }. ^4 eswitch ( date ( "D" )) {
3 g; L% V' O1 Y% g% n: Qcase "Mon" :
; A% e7 a' I, ]2 C. Gecho "今天星期一
" ; . |. q! S; V. ^9 D( w! w
break;
) I+ A) M/ O: R0 A7 e) \: Qcase "Tue" :
. g# N* m6 V3 decho "今天星期二
" ; & A. m5 B; D$ S# u& ]+ t; g
break; 5 D; S: a" c+ t  y  G2 `
case "Wed" :
1 i6 s. Q3 R. t2 zecho "今天星期三
" ;
. o! R; w: `2 w, ?6 Q: xbreak; ; f2 T6 e" v4 s- c& b
case "Thu" :
- c. p* O! b% b' l9 I, f4 B4 Becho "今天星期四
" ; # q! c7 U* _3 D+ D
break; * m- Q. ^' G$ w* R/ X2 L
case "Fri" : 9 p7 m% [9 D9 S5 \( Z/ V3 I4 L
echo "今天星期五
" ; / w& Y/ u8 d+ M% A: Y1 }3 g2 C1 i
break; 8 o! A; a% E, z8 Q8 k) S+ B
default:
, A# @; T& s8 g- Z$ M8 g! Z/ Eecho "今天放假
" ;
+ n1 T7 o+ r9 W' V0 Ubreak;
% x0 N3 y: z5 \5 o- i' o}
& a' W5 d9 K2 \& c/ f?>
. R$ P: ^0 `* E3 F3 {& p9 m这里需要注意的是break;别遗漏了,default,省略是可以的。
% P  G$ p7 m, A- u- f6 I# G* Q
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
, n* O) P6 \- j( c
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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