获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第二天

php的流程控制 % c0 R& e3 v4 C: f

' L8 r  X, v# a  Q1 P3 ^0 P& ?! ]9 [1if……else 循环有三种结构

6 M  H* l( Y, K' L第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: " t; h- ]. x! W5 L) V: [
8 T6 |, V6 }. [) o" q
if (a) { statement }
) {( C, o" x) i其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

+ f1 Z. d0 J/ I0 w6 d范例:本例省略大括号。

- J" W& f; R8 h9 [$ V
$ W6 V. m1 A* x% n8 j/ s7 B<?php
4 q( j) [) g! ~9 z. k7 u( V" {$ N0 uif ($a==1) echo "我爱
php" ; ( G7 W6 {! }* Q3 Q5 F( c3 ~
?>
8 P  p7 q! g: N% U+ b# a1 h: M7 B$ x
: V7 C2 @" y, O5 I8 Z这里特别注意的是,判断是否相等是==而不是=
# e3 C$ I& A) @; X) l6 V7 O" F/ ?* b
范例:本例的执行部分有三行,不可省略大括号。
( K! t! {" V- |( M8 }1 b3 b& o6 |2 O7 H

7 n/ t2 B( A2 Y<?php ! z' E& {# M. U" U. S1 p* e2 f/ u
if ($a==1) {
. S% R% U" E! q3 c0 [echo "我爱
php" ; ; U  j7 D" I. }' |' Z: g! [+ j7 K
echo "<br>" ; # t" t* [& N1 O2 G9 T* w% j
} $ g9 O! V; I% p' O5 [% I& |
?> 0 B: V9 [2 G# t4 K+ ?- ^, ~- O4 r
( r+ [; a$ ]- W! h* d
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
. b" ?; u) R! ^( L3 Q3 z& a
4 m( {2 U1 H& \2 e+ Y3 |- g
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
4 M; K$ l8 {  I
<?php
$ k3 s, H8 D* D" f9 a4 yif ($a==1) { / q9 P2 ?; T& F& o4 ]
echo "我爱
php1"; . Z) v4 t- [* M
echo "<br>";
" f& c4 P% J$ G9 C5 U6 \7 l} ) A7 d) ?/ C2 ]4 @/ }# Q9 E7 @' o3 c0 V
else {; n8 r2 }+ G+ a: a7 e) e$ K" a
echo "我爱
php2";( w* f' J# e1 s" h4 l4 T
echo "<br>"; . ^. O+ C: G5 x" y
}
( ?+ {% w& P' F: M0 n# E: q4 L( M" a?> 8 s2 _- U" B; i$ m6 @- S4 _

0 C7 ~; K  d9 g第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
$ Y0 ]2 c& W1 ]. k5 N0 z! X  R% G
直接看下面的例子
; H3 D0 g7 d) t# R4 f
<?php * \. \; y0 V. A! e0 O* C' a
if ( $a > $b ) { 5 l0 q$ {' G: M2 m. \' h; R% E6 D
echo "a b
" ;
8 U! ~" M3 Y# F& w$ X} elseif ( $a == $b ) { - B; O$ w& A( \$ d$ i
echo "a 等于
b" ;
5 \7 u8 l* q* m3 L" l' ^$ x} else {
# C  s3 K, ?6 g: lecho "a b
" ; ' P. }8 ?& g( S( c; k
}
5 m# L, i  i) P# c! X?>
* d4 U( Z/ `6 Q& y$ A+ L; V9 P" H$ m  f* b5 b9 f  m7 t
2for循环就单纯只有一种,没有变化,它的语法如下
" @0 G0 ?* \) j7 \7 f% `
) h  b) f; U8 \! `0 A! G/ E
for (a; b; c) { statement } * l& ~- W$ I9 C& [! h7 j2 `
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

9 B0 d3 {0 [5 f下例是用 for 循环写的的例子。

2 Z" l3 Z8 V; I6 B, P7 t<?php
* A. n5 X" f, {2 z! I- \/ ?for ( $i = 1 ; $i <= 10 ; $i++ ) { 1 F2 c/ i9 o; @  y
echo "这是第".$i."次循环
<br>" ;
6 x( [& _, L2 i6 m2 g$ D  E4 A( K}
1 W9 G( R3 F. i  D  y2 O& M: Y?>
1 ^  d6 }8 {) }  e" E' l: o$ R$ _! n) J! }3 Z! L2 D6 d0 w
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
9 Q4 h# ^  T7 I! _& i- w
语法如下:
' f8 P. w* B# G0 e1 l  b- K; @, Lswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
! L& W! l( W. z1 t9 p7 P: j. }
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
9 q  k8 n, J& T' c  W6 P1 R0 ~6 Q- Z2 W; [# w$ r
<?php
; M3 K- l. l# m1 W* S% pswitch ( date ( "D" )) {
; h; ]8 {" k) f* O" o7 r2 A4 b  }# ycase "Mon" :
/ O6 L# A$ h' G6 @* T9 G+ j2 e+ qecho "今天星期一
" ;
# P& R0 o( r: w5 ibreak;
5 C& `* u4 H% K* pcase "Tue" :
! n! M% i  l9 o  x  S4 j$ zecho "今天星期二
" ; - T: F, G0 K  d% m3 \+ f% ]
break; 0 d/ M9 ]* j+ L' W
case "Wed" : / C7 d% M( N- ]" D7 E, u
echo "今天星期三
" ; : p1 ~! k0 X  n
break;
) e/ ]5 w) v, I$ g. T# scase "Thu" :
1 \& R. S  u' h- y2 Recho "今天星期四
" ; 4 ^. u) C1 E; Y
break; 5 \% e( @) v5 x! }# z
case "Fri" :
5 a6 x2 p  z% G( q% ^' Z# hecho "今天星期五
" ; " ^/ m) T) A) H2 M
break;
1 _3 k  [- i$ V9 b, s! Idefault:
) h4 R4 j3 N& f# y/ J& w0 e' ?6 pecho "今天放假
" ;
( h2 |# ?2 S7 ?1 D* {) bbreak;
9 o- F5 d) g8 w; J5 v} ( e5 g& V/ O) s7 L+ \# b$ ]9 \# q
?> ( m6 k+ t' E  A; _) B
这里需要注意的是break;别遗漏了,default,省略是可以的。
& y& D( }/ X, M6 m) t- r
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

9 |* L( j/ {0 E3 a  n$ `十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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