返回列表 发帖

十天学会php之第二天

php的流程控制 ! g' y' p8 x& ^) m' s

6 n7 Q" [, X& }5 y* Z3 O3 @1if……else 循环有三种结构

6 }- k1 O  ?* v$ A1 W6 W- l- `第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
4 y0 I2 e8 d, ^' Y
) e2 L9 k8 d' Y# i5 Aif (a) { statement } & _7 g  G( V7 W7 Z: h& r' q
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
9 ]8 Y& s( W1 O6 N0 Y- l
范例:本例省略大括号。
+ z5 i4 t1 H: c2 Y% d* r! ?

- G8 p) j2 Y7 U: b1 ^- ]<?php
, e" n1 R9 }$ G+ \if ($a==1) echo "我爱
php" ;
' }1 Q7 L' j  E: w! l' y?>
/ O( w+ x7 A. J9 g  K& q. d. q8 s2 J- E, Z; M  u
这里特别注意的是,判断是否相等是==而不是=
+ y9 I' F' p: l: L) t
范例:本例的执行部分有三行,不可省略大括号。

. d: O. ?3 y  p$ [* k+ H# @  O! ^( Y
<?php " _- M# }! B$ \0 r- v
if ($a==1) { + T% E& e  Q  t. I; c/ a1 o, s
echo "我爱
php" ;   Z; m& G, l0 J* [/ t6 r
echo "<br>" ;
) P' ?; y* G- C. K1 H: x  [8 z}   N* B# d) _$ I  B
?>
, r5 _3 t  x" @4 g
5 c2 R! V5 E) f# L. i+ I, D第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

8 f5 i! |6 L3 F) }1 u+ ~; M. R8 }: y: I" W8 e( ]% }% s) H+ Z- H
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
7 @% z8 w! C6 m! y* Y
<?php 1 X' M$ k; k3 h! t  E
if ($a==1) { " H% r0 S2 |3 j* p3 \
echo "我爱
php1";
, f' Y8 L9 y: |& X2 Gecho "<br>";9 O+ E) a8 S3 _" c' Q
}
5 k! |, t) D: p6 s5 uelse {
: B% Q( d. V  ]( n& Zecho "我爱
php2";
( C0 {  k6 Z: J' o0 t5 f* cecho "<br>";
% J" Z, F1 g$ ]}
$ |0 K- e, L- e2 }" _?>
+ ~6 h) ~, B" ?2 s# [
  t0 R7 ^, l! }6 B, o; z第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
; n( X, Q2 O/ d
直接看下面的例子
# H. r4 L! T: X; i8 d: ?. S
<?php 4 k' N3 Q1 ]9 w2 W5 e
if ( $a > $b ) {
" o) K: {: L% t0 f: \! Y$ s( lecho "a b
" ;
2 s. {( E. z6 H5 A9 r4 p} elseif ( $a == $b ) { 4 }2 |$ Y6 T( e& C- V. `
echo "a 等于
b" ;
2 K: r7 P: q$ [/ _1 n} else { & E: ?5 B4 k4 d3 p) \. ]+ P0 W
echo "a b
" ;
, Y4 R: q, L: \}
1 d) v7 Z  Y$ b5 y?> 8 P  U4 t8 ~! r' Y0 Z' J/ O

' c9 M, N+ i% N) {: @$ \2for循环就单纯只有一种,没有变化,它的语法如下

0 f( x. y5 x' Q3 M2 d0 P, |) |5 T7 ]2 ~0 f; b
for (a; b; c) { statement }
/ g6 ^) c  g' d& R1 A其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

5 l& H" ]( _+ F1 |7 D; H3 y$ R下例是用 for 循环写的的例子。
" b# B% ^' f" {2 f$ _6 Y
<?php . \4 \8 r+ c8 s1 A  O- T8 o; r' q+ m
for ( $i = 1 ; $i <= 10 ; $i++ ) {
3 L( G6 D; `, r$ Pecho "这是第".$i."次循环
<br>" ; 5 g+ U$ t- Q) J2 q
} % ^, K- l* g, a
?>
' i: F$ q- i& |$ E/ P$ g' K/ i3 g* B$ Z# R
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
6 l- f6 f) J: u: l$ H  b
语法如下:
3 o( E$ O; B6 H( W( r* Nswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
0 _$ G, R' C( F- t( Z$ }
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 # r3 V5 ?) A# v+ ~3 z# ?7 k

4 z9 d5 i  Y8 W/ a( D/ n<?php
4 }0 @( P: W1 ^  \: Jswitch ( date ( "D" )) {
: D1 ]  t+ w( d4 s7 Ecase "Mon" : $ f$ Z9 Q! q$ x2 w9 d
echo "今天星期一
" ;
1 E: |6 m9 q* q- P9 G4 g9 Wbreak;
: O( L# q" x, Y) m1 W1 fcase "Tue" : 5 g, }) r, h& k6 M) k
echo "今天星期二
" ; + c1 Y6 z- W0 Z' q3 e+ [) h
break; 9 Z3 U  c+ ]  g' \' ]
case "Wed" : $ U; P. k6 Z" h! q' {
echo "今天星期三
" ;
0 {+ H, V. d8 V/ V- R4 zbreak; % c3 ]! V4 S4 k$ N5 Y) }, i
case "Thu" : , B: x9 s# o2 c! l8 V
echo "今天星期四
" ; & U3 a6 p/ O; y5 J- v
break;
) p' ^: o4 p1 Jcase "Fri" :
% G) @1 j, f" d! i  `( q8 C, Lecho "今天星期五
" ;
4 I8 H; I/ }0 c' H2 c# h! cbreak;
" J) W/ [1 y# Z# _; Zdefault: $ E3 K5 Q4 x5 m& G7 F7 J. h+ a2 z, T
echo "今天放假
" ; 7 s( {6 ?0 C  |: Y  h& l
break; - i) {! p- m) d
}
* Y8 O7 N1 K) h?> , P$ E6 f) V$ Q! l3 R* c
这里需要注意的是break;别遗漏了,default,省略是可以的。

4 R$ J$ K( s2 O0 t$ v, a9 j很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
9 O# l2 O) c, v, Y" w' r% U
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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