返回列表 发帖

十天学会php之第二天

php的流程控制
  Z- G6 k  T9 e4 n
! u; K: j) f' H1if……else 循环有三种结构
. M3 d# L1 N5 |! T1 ]
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
  P9 N5 |  E5 w, H- V( r! l3 s, z( h, f# _$ q6 z
if (a) { statement }
  t% ]1 ?; q. F( ~其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

2 f5 C+ R! A) p; M. r* w: ^范例:本例省略大括号。
  E/ Q1 ^0 s4 G& s3 v) m7 o

$ m/ c% k' _2 b! U1 u! e<?php ; y9 D  C9 h4 f: r( ^
if ($a==1) echo "我爱
php" ;
0 S& k$ B8 f8 d% Q- ?1 A?> + [4 e  P" r& w/ H

- G! J& ?" J8 s( ?这里特别注意的是,判断是否相等是==而不是=
# l0 z5 \8 }  @
范例:本例的执行部分有三行,不可省略大括号。
3 R+ T& F1 H2 f4 M
( ]: y/ B% T8 e3 I$ J8 i
<?php / @* g1 i# K/ P
if ($a==1) { ! E# ?. e/ r% h
echo "我爱
php" ; ! i( P3 B* `) S% i% ~7 j+ K
echo "<br>" ;
9 s7 X+ |" |. L  G; t; n( t, P+ ]) u} ' u+ V5 a7 k* W4 S! e* a$ j
?> + N5 P& f# o* q' l  b, G
9 G6 Q. n. @8 N1 v0 j# o3 Z
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

. g+ U7 Q9 m! b8 r3 |/ Q" f6 ?- k) \( J& u
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

4 u! N8 X3 }! U- ]1 L<?php . Z' \0 k" @% v1 A
if ($a==1) {
; \/ }+ n  _! iecho "我爱
php1";
/ x* {8 T6 W7 v. y( D1 N! Vecho "<br>";' J' C% X+ \2 ~& Q8 c
}
" |) K( a* a8 i! e7 P; belse {
7 |' u; ^4 N. C! `* w8 Z# m) }/ fecho "我爱
php2";1 n% ]' f# t9 ]$ `8 h1 a0 l, h! W
echo "<br>";
0 i9 j& l  @7 n, ~$ o4 {5 t" H} , f8 `2 e' [1 V5 `
?> ( r" F  [9 Q, n: G
/ J  T! g4 z! G( G5 J
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
: i! u7 h0 v  j; {
直接看下面的例子

/ M- s/ R4 p7 z  Y8 u<?php   o1 ^8 s/ }0 p$ C. v
if ( $a > $b ) { 0 G' d! }. W2 Q0 C( A
echo "a b
" ;
5 S4 P' C, f6 |' D* k9 }} elseif ( $a == $b ) { . T% z5 A/ o, A+ K& d! f5 Y9 B
echo "a 等于
b" ; : S' s% C0 K) N# E% |
} else {
9 H( I& x) |! o0 ~& F3 |echo "a b
" ;
2 R5 m( V2 L8 ?& a7 J& \. ?6 O} ! }, T- |6 {+ a, c8 X
?> . K* u. ]) i3 H: i# r6 z1 x1 @$ v
, f8 |4 K: d/ a/ r7 P; a4 e
2for循环就单纯只有一种,没有变化,它的语法如下
. i5 V; l  e) N' A3 |
6 N) z/ T& r$ k2 `0 f- s! c
for (a; b; c) { statement }
. ]4 r. L! _, ]0 c# L% w其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
- w# J) M/ j9 r5 p" }# X
下例是用 for 循环写的的例子。
7 h! L5 D7 L: ~5 l, |# Y+ G0 q6 k* I
<?php . A! j0 x5 ~' j1 e9 O: F" j. Q
for ( $i = 1 ; $i <= 10 ; $i++ ) {
0 o4 Y$ r/ `# T' A+ Jecho "这是第".$i."次循环
<br>" ; ' N2 F, ^  F) x# ?- z3 L3 U- u
} ) r2 e! N; s1 _; C5 _
?> - |- ]3 f2 \0 }' r5 x+ J
" ~2 N' G/ ]1 \0 d# L/ ]
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
' q( v4 f6 P) u$ w( H) A* k
语法如下:4 T3 i5 z2 M" ~' m
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } * R" }9 a' ^, l
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
( T" t: `4 }% c, w' {
* g4 Q5 v: ~! J0 u5 w. ~! ?<?php
; L6 a. K, g/ y7 L0 h2 uswitch ( date ( "D" )) {
9 D# \& ]( w9 E( A! Rcase "Mon" : ! X6 z1 L6 h: w2 [( I3 R
echo "今天星期一
" ;
& _. u8 W% Y. {8 U  \  Mbreak;
  l2 ?7 D- ]; L: tcase "Tue" :
+ X! E, E) m* R' Q/ Xecho "今天星期二
" ; ) [2 [/ z! S3 B3 B5 q1 r
break;
# s, ^! V, }0 ^9 ?5 N+ Ccase "Wed" : 4 ]. o# b* }/ E
echo "今天星期三
" ; 7 [  J/ [! z- G
break; : e/ A# E+ @' `0 w- B
case "Thu" : / C/ ~$ m0 T- J0 m% }3 i
echo "今天星期四
" ;
# S8 Z3 N3 y- |break; 9 j% c: p) q) g
case "Fri" : $ Y1 k2 L% g4 b7 F: }9 r; V
echo "今天星期五
" ;
: L$ t) k) ?: jbreak;
6 Y" E. \5 @& D. H/ f$ Gdefault: 2 u! W  |" Q2 O- S. l
echo "今天放假
" ;
6 E+ G& E/ z" b7 [9 {7 vbreak; ! v  K& \- A# b# T/ W$ v* D. a
}
. \* a. `0 v0 s) P3 [?> $ ?( d4 g3 P" o* I1 G0 V) g: `
这里需要注意的是break;别遗漏了,default,省略是可以的。

) ^- E, f% F( d! `1 a! X很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

. U: F2 i/ p* g5 R# V+ A十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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