php的流程控制
4 Z5 z. R3 A3 I# y; J4 {. v- n& `, L( b4 N0 o
1、if……else 循环有三种结构
! j7 w3 {/ b' T第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: % B( i3 G( a7 [# |* v1 R
! k7 T) |1 A& C# @if (a) { statement }
/ i; ~& [# [2 U) S其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
$ P' R0 n/ P7 _3 d9 v3 a范例:本例省略大括号。 7 |' s# j- ^* O" c
1 z! c# C, q s0 O, M! A
<?php
7 v6 ? A$ E# `8 \) Iif ($a==1) echo "我爱php" ; , O' R( o1 K$ J+ Y( ^! i7 f# u: v
?>
+ `& X% D3 B, i- o; k
& A3 u; J: P5 l. T p6 J这里特别注意的是,判断是否相等是==而不是=。
$ @; s6 D g; L' K8 `/ q* s" l/ W范例:本例的执行部分有三行,不可省略大括号。
9 P& w7 P/ x$ p' R: m8 l
% \. `* V7 s* {2 Z: w: Z( f<?php
3 g' w; [( v' I$ A, C7 Zif ($a==1) { J8 I1 W N! p- _4 K0 ^8 |
echo "我爱php" ; $ a0 _- s! y. { {/ T" t
echo "<br>" ; - s E. i7 g2 q% }7 c K
} 2 }8 L5 h0 ^$ N; O ], ~9 b
?> 9 E0 ]. U- t1 d& r* W" f. Q6 p
$ f8 V7 ?# N& q" R I
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 9 @8 s2 u2 V( ] F9 s, j: G
- U( X% d6 n$ t3 ^1 z& S6 Lif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 ! Q. z( T( V5 s! a
<?php , ]/ ~0 W. x# j, ~, }
if ($a==1) {
g* h5 ~ n7 |/ O4 {' recho "我爱php1";
, e7 m" }1 M3 |echo "<br>"; Q* k! Y+ Z; Z5 a+ t9 ?# R
} # n6 ?# S; N; L9 y. d
else {% ?1 X, e0 ^% b& i- T7 p
echo "我爱php2";4 [' s: a' h6 q
echo "<br>";
& U4 B0 p3 H. h/ j2 {: u( d6 _' n C}
9 ?9 b/ A, U. \' @+ o?>
7 i8 a, P) X4 p; j# Q2 [1 u# \/ n& ^4 Q3 o L
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
9 h/ j+ y! ]9 N) a直接看下面的例子
! J5 }3 d% p+ L# j8 u. J0 o( c+ W# ^<?php
1 Z7 R$ F; w( pif ( $a > $b ) {
) `6 G, ^5 c( o. p. `echo "a 比 b 大" ; ' Z, w% T+ Y! p1 m* R: Z
} elseif ( $a == $b ) {
% W& O2 O4 B3 q7 T+ d5 ? Z% Aecho "a 等于 b" ;
, M) q0 o' c) f$ r: _8 |} else {
4 o1 L: ^) l2 _echo "a 比 b 小" ; * {: F ~) M8 K3 v3 _
}
+ P0 K9 \0 V3 C; e0 }3 s?>
7 y, F6 I4 [$ ~: [0 X7 H
* V' w, z3 I/ `; `6 z2、for循环就单纯只有一种,没有变化,它的语法如下
! V% i. \% `/ x, e0 E I" ~9 |2 `6 o7 |7 f0 ?7 g6 |
for (a; b; c) { statement }
7 C* F0 Q/ z+ x" b其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
" i5 g* x3 q9 P/ ]" O下例是用 for 循环写的的例子。 0 ?. j( s9 e, v% X! j: d
<?php 8 K/ z9 {2 u4 [" q! M0 Q7 Q4 T
for ( $i = 1 ; $i <= 10 ; $i++ ) { / y6 ?8 H' i; V
echo "这是第".$i."次循环<br>" ;
/ K# V5 P$ J- x8 W1 w& Y: S} / x! P9 z9 c a2 P% P& W
?> . {4 F* W4 W% i3 j
- y1 j- W, x+ C3 l
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
; x9 o* c' X6 j2 _语法如下:
& V3 o5 H. P9 P0 U1 i5 T C. Lswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
# M$ p+ J1 z. W4 }其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 1 w4 ?+ i. e4 O h# D
. y; o! q4 F4 w. q<?php & }$ |1 b& ?. l6 ~6 ]. A
switch ( date ( "D" )) { ! {3 s5 l5 S) H4 c- ?, C( h
case "Mon" : ( G- W* p; s9 I: ~: r2 ~
echo "今天星期一" ; , r: ~& k* [8 y. s: D" Z- f( ]
break;
' ^: |( y i# A' p$ |2 Pcase "Tue" : $ P& R- Q9 Y! i8 M. N' e5 B# K
echo "今天星期二" ;
* i+ V/ y/ x, h) m5 Ebreak; ; f/ L& |- p; Q1 C3 C2 y
case "Wed" : P! v& [! ?% M0 {0 B9 l
echo "今天星期三" ; / H) O% m; J4 Z' H' J! s9 j
break; ) U; Z% ]' [$ {8 g" w) _
case "Thu" :
% F! w% f& k: P( t& |, F, f8 ~$ Uecho "今天星期四" ; f5 M" t) K9 r9 y) `
break;
+ q8 Q7 c: d4 P k% ^, Ecase "Fri" : $ y! N& m! ~+ X: v; P9 E
echo "今天星期五" ;
' V3 X& T+ r4 P8 H) k9 x" U* Ubreak;
% a& s. L4 z+ v t a/ F3 Adefault:
6 _7 H3 T9 J; [echo "今天放假" ; ( u$ T9 G% J. r7 J( [+ o$ r/ ~
break;
/ B7 o1 c. J$ l}
% y/ k! X) {( S: _3 R5 m5 s?>
7 K4 @- W/ F8 h9 h7 J这里需要注意的是break;别遗漏了,default,省略是可以的。
$ v7 a j4 w1 {4 O很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
! j7 s* H8 ^+ s7 I7 W! _( x* ?十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |