返回列表 发帖

十天学会php之第二天

php的流程控制
. D8 U; ?7 `/ G/ n2 ^, \' i, P" K( ]2 ~6 a, T; w
1if……else 循环有三种结构
7 D7 k8 U, G) x8 D
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
0 \3 d; K. P& M- }
2 V8 F9 J" g/ k8 s( ]7 `  jif (a) { statement } 4 {0 |6 u- S% n! ?! n
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

% n# [, {( d1 l4 p3 _/ R范例:本例省略大括号。

4 f3 I$ Z8 m# i; Q. ?, T: o: w( J7 k; K5 N; X7 U, a4 L
<?php
3 V4 p. w! ?; _9 m- Aif ($a==1) echo "我爱
php" ; 6 p1 l- S* \! h/ s9 U. u. _
?> 3 W5 \6 y& ]' H# R/ O" y1 a

/ P! i# s$ Y% i- D) O3 _% V这里特别注意的是,判断是否相等是==而不是=

/ y: C9 q$ m; P  `( T( G范例:本例的执行部分有三行,不可省略大括号。
: K' \( n1 H! A! e/ q9 E' h4 ^

) d+ o* x0 o4 G9 u9 `& C<?php
; F% l) \: \# pif ($a==1) {
' a, F  V7 V1 D3 j1 {. `' G7 s9 V, gecho "我爱
php" ;
% S2 @: C! T2 A3 fecho "<br>" ;
& }: k1 \: d5 Z7 ~5 E; J} 0 i: t' {( S+ S2 o; L
?> , s3 E  [5 @4 ~# Z" C- X

7 \4 [0 K, X: w0 q第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

  v! x$ ?! p* p$ h6 ^" }3 w+ ~; _2 o% L9 u# u
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

/ j8 g6 }$ N8 N5 l<?php " i& n; O) @+ }1 s2 Q$ @+ F
if ($a==1) {
1 l. B/ d, I1 o: J) hecho "我爱
php1"; 6 W7 @* F& b8 |* g& t4 j- w  w
echo "<br>";
$ s" r: K, B' h- u# Z' c}
" |+ ~' Q1 }% U- zelse {
/ M) |0 x. J- p# I8 t2 S" m! l- }echo "我爱
php2";! i" L( A7 g1 |. L
echo "<br>"; 9 s5 N7 Y) {9 o6 a# ]
}   m0 `4 r: y$ ^
?>
# |% U0 b; D/ [% g. @" T3 `6 G4 N$ {8 o
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

! e$ ^5 a& Q; U; \! A直接看下面的例子
# e0 l3 u2 S4 m/ T
<?php 6 j* y% c* a  f# m5 K' f. y
if ( $a > $b ) {
* }' S4 Z% P& G5 k. A5 Kecho "a b
" ;
* r( y! Y- ]8 ^; [8 v  Q0 x8 X5 R+ Z} elseif ( $a == $b ) {
- \6 C: L, P7 I+ E0 }echo "a 等于
b" ; ) y6 f! l2 ~" M; Y/ L# M2 W
} else { 0 w8 j- R; T0 g6 ?
echo "a b
" ;
% W' n6 }0 ?  T} ! m& Y+ w: D, |$ O* p
?>
' Y( }7 b* |( A, q  M6 K; I) {0 @8 B8 l& d! Q$ m  K1 S- x
2for循环就单纯只有一种,没有变化,它的语法如下

9 D, J, ~' {, d9 C0 v
& u$ P7 Q  `5 h  E6 v9 V0 Cfor (a; b; c) { statement } - W0 C4 B* T, h1 M9 C
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
1 \; t- y4 @% O) F
下例是用 for 循环写的的例子。

5 ?2 B8 r- _! n8 u1 P9 @8 X0 @<?php
$ ~8 q  c( Z6 H3 [6 A! ?& b, ]  Gfor ( $i = 1 ; $i <= 10 ; $i++ ) { 2 G. m* O9 t8 v) A7 d% F
echo "这是第".$i."次循环
<br>" ; & K; _, w0 v5 A) n
}
" ]& {" x' S# J+ v) @  }6 H?>
. ^) ^7 h, W) o& t# Y, k7 c& z. Y
5 G8 d3 G  h1 k3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
( B7 G1 K! U- i7 J; O; J9 U
语法如下:4 O+ q( }" B- n- y7 D6 j! O4 {/ f/ h- e
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } $ A4 |6 l7 Y9 A
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
# m1 D2 a/ Q$ ~0 g- `( k8 ~. v
  K. g# i8 H6 X+ O: n  x. [) A<?php + A! Y; Q# v; L
switch ( date ( "D" )) {
. b+ e4 V) M  _6 e  V/ Dcase "Mon" :
# M2 J7 m6 d, H+ }! ~3 Cecho "今天星期一
" ;
, s" b2 W% f3 O" W5 Z: Qbreak; 0 a0 u9 Y! F" h
case "Tue" : ' X1 q/ `+ W2 s8 X$ H( G* }
echo "今天星期二
" ;
% r: l2 z$ R8 @break; + ~3 Y- C" i4 Y) d: P9 b/ f+ C3 P3 O
case "Wed" : % x: \9 K- i% Q  ^
echo "今天星期三
" ;
& @7 Y5 Y4 f* `- m) B) ?. F% _& W( `% ?) Sbreak; . V" N% O9 Q8 }
case "Thu" :
- n0 [7 |; R6 X9 {- y7 Q9 \echo "今天星期四
" ; 2 I' K0 Q2 w! B( ~7 y
break;
1 i6 N' M/ @, C( [4 fcase "Fri" : ' O. [$ o/ Q' v: _1 Q
echo "今天星期五
" ;
5 i8 p: l; H, _4 a& X  s5 rbreak; 3 k; x5 D3 X5 `% K: [
default:
3 S/ ~+ _% v  jecho "今天放假
" ; ; o( ^3 }! X0 |) l  \& y8 ~) r4 O
break;
' H6 \% v( `# N) H  A}
/ L1 W' Y$ W" T# `?>
8 B; {% w6 c8 a1 [' @# g6 o这里需要注意的是break;别遗漏了,default,省略是可以的。
' k7 Z! k" Y4 Z3 z9 M9 @; D2 {
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

* U: J; d) `2 ]: L+ g$ `- o- c* H十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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