php的流程控制
( \# \% U7 F/ e& P, t3 w$ \
2 W7 P; g; v7 i J! q! P5 ^% C1、if……else 循环有三种结构
- C" m7 M5 }1 x$ M, x, B, s/ A第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: , B* n4 ~( [& p/ ~4 i, q+ m
- E& m. _, k! P( ~7 g+ {" ]if (a) { statement } 6 H2 |4 W9 [8 ?+ g
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。7 T; H+ Y" h+ W: A- T
范例:本例省略大括号。 , s( L+ U S- V7 a
1 `$ H4 |8 I) K% Q- ~! c. Q1 y
<?php
3 ~- u( a+ X/ ~if ($a==1) echo "我爱php" ;
+ d5 v8 E) q5 W7 D/ J?> ) B( x7 k; x! z; o4 p
( O/ r O6 b7 j
这里特别注意的是,判断是否相等是==而不是=。7 a2 }7 R" P9 U* Z* t7 ]/ J
范例:本例的执行部分有三行,不可省略大括号。
+ F* [% d0 R# U( n! W+ R6 p2 \/ H$ ?8 Z
<?php : ^$ @2 N" n) f* w U8 l9 w1 Q
if ($a==1) {
' y% ]! z+ L" R. m# aecho "我爱php" ;
- N! i8 o( B# [3 {3 `echo "<br>" ; : e; n3 E, h. ~7 f& x9 J% o3 d) a
} P2 X; v/ m8 S2 _8 B
?>
5 Q( \1 _( L6 r' l0 L% d. g
( t2 G7 o; [, _6 {; g第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 2 f2 V; U5 @( f( L) @1 A
, h0 }4 }/ v; e; \/ h& k- e7 Xif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 3 j" w7 M/ F6 n; C$ i: T4 y. V; H
<?php
: j' G1 n; d! [4 [if ($a==1) { ! m1 J/ p0 ~' g
echo "我爱php1"; 1 K$ G( s0 R9 l3 S! n
echo "<br>";
2 S( ~6 V$ a9 |' n$ `) e} 8 ~! }/ p5 M9 R
else {. }9 k0 `* |. O" o* u% Y0 S1 V
echo "我爱php2";
% l+ {# ~' m) [, @( n# uecho "<br>";
' Z: S) q, ~2 i8 p+ u}
" }/ K0 n( a3 X& A! w?> $ A9 n7 n1 B- H$ Q' j9 V7 n
0 _: R ?# p. [8 k* B
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
7 y% K* b8 h; A& N9 B" W直接看下面的例子 9 n8 l. G7 }+ B# {) G7 U5 X
<?php
" j( R- h! y! V$ l9 Lif ( $a > $b ) {
- k- ~: Q3 P7 t5 s/ [echo "a 比 b 大" ;
8 f0 [( _: d3 g6 Q} elseif ( $a == $b ) {
1 j* j4 j5 X# M. ?- k% qecho "a 等于 b" ; 1 d$ h! `" _4 ?
} else { 5 h0 x6 ?9 `4 v, W7 ?
echo "a 比 b 小" ;
2 y% L$ E$ A k# h3 Y}
' A. q- Q5 ^5 G5 _8 S/ u- ^0 b+ a& T( M?>
4 N7 D7 | M4 d: {$ L3 |# B! S4 S+ ~! `
2、for循环就单纯只有一种,没有变化,它的语法如下
2 f N0 E& C/ }9 z9 o, m6 x! _" ^, G6 P; ]0 T6 q z
for (a; b; c) { statement }
8 }% z5 j( ~& `- l; x! ^7 T其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。9 |8 k8 R4 A. Y" X) v- Z
下例是用 for 循环写的的例子。 0 a0 B- t/ x# h$ q6 y
<?php
8 a/ G" M5 P( {5 O, ?1 v: }for ( $i = 1 ; $i <= 10 ; $i++ ) {
$ ?/ o* C+ w* j; \+ P& Uecho "这是第".$i."次循环<br>" ; & \) k5 @1 i, P9 |0 B
}
7 v7 G. P% ?8 @2 c" i" [?>
* ?/ b6 Z" t. w4 n* r- I# s ^0 V* O8 e
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
# `0 T9 n3 g9 N3 V语法如下:) b5 ?6 F" X. k; `' C" u
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
! L* S/ D: S ^, m1 p- G其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
$ y* I' L8 q( ^
5 d# v- M- S) d2 E/ B<?php
3 H. y: f7 r# M: F& O8 C1 T6 u# mswitch ( date ( "D" )) {
6 R. e9 i1 [# ?case "Mon" : $ H Q F# C% P% p z: c% y4 Y2 I
echo "今天星期一" ; 1 O8 k) I5 Q4 @
break;
4 a* X9 T/ Q5 S; F, Vcase "Tue" : # d8 ?# e) R! z# y1 `, M
echo "今天星期二" ;
2 l# c7 v7 k# e1 L) x* n. b$ gbreak;
- W" m2 j+ F/ g# T( y6 H; T* B5 dcase "Wed" : 2 Q5 q7 T! f) n$ S& E. a) c6 e
echo "今天星期三" ; ) u! z& B) D5 n- h
break;
% K8 L( b* p* L0 rcase "Thu" : 5 t: h8 Q# L3 s1 _9 x, d4 U6 v3 f
echo "今天星期四" ; % ~' g9 F9 j( U' V
break; 1 _; a* K6 ?+ J0 V" B8 W! D
case "Fri" :
. Z" a. c) \4 g3 d1 j3 P' Vecho "今天星期五" ; / v& p C' s# F. _' [
break; " e4 D( A; x) r/ l* A( S
default:
6 ]$ D7 y/ p8 a, F$ Hecho "今天放假" ; + m& D( g# K" ]
break; 2 y6 T! j' o1 w& \, Y6 w
} - w& @1 n' @3 @8 t
?> 1 b0 F; K% \2 S& W) q/ {5 u9 h
这里需要注意的是break;别遗漏了,default,省略是可以的。3 w8 t8 Y: H. h5 H1 W; m# T* [
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
8 g* z, m, e5 L3 i# j* }& h十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |