Board logo

标题: 十天学会php之第二天 [打印本页]

作者: admin    时间: 2008-3-26 16:36     标题: 十天学会php之第二天

php的流程控制
4 V7 W: n3 ~7 _& s$ @! y, b) _2 u; i! O) @
1if……else 循环有三种结构

# t' h# d8 C& l$ z- k5 k/ k- d6 m) J第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
2 e7 \) F2 E1 x$ e4 v9 y( e" R7 G5 Z$ R) l% Q8 K$ V! M6 I
if (a) { statement } 6 A4 b* T8 B2 Z
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

6 R- _2 t- k- b' a& f' Z4 X& W范例:本例省略大括号。
$ T; A6 V/ w! J" H
! G4 V; j- B* @% S" G6 Y# I8 |
<?php
2 r0 {& Q, _, x; _6 U+ }& kif ($a==1) echo "我爱
php" ;
0 b5 {' S( W4 r$ j- s% n?> " p5 a) E; x; P
% q* W" \+ Q2 Z" O+ R
这里特别注意的是,判断是否相等是==而不是=

; L( f& j9 \/ t! d4 P范例:本例的执行部分有三行,不可省略大括号。

: L% P( w% [& a6 v
, W0 U- {: ^- I: k; x<?php
4 }, S4 y. m' x1 D$ n) g$ Dif ($a==1) {
# |, o7 j) f4 zecho "我爱
php" ;   V0 m. g( f; z6 w
echo "<br>" ;
5 W3 x9 p- l1 O6 z}
( E7 I, b2 m# a! j?>
7 H8 }& p7 b7 Q( F: v: d# w9 a% b+ m1 z! K: e  D
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

( P4 n, q# S5 l/ y! a
/ N! M+ i' V$ K& \- xif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

0 Y4 H2 G* k' V0 g3 t<?php - B3 x+ L. X' j1 A( M+ k! ~9 s
if ($a==1) { 1 F( ~8 ^7 s9 o4 a
echo "我爱
php1"; , v1 w0 i  o* Y0 B9 }9 }
echo "<br>";
0 K1 `! h0 t1 V% g  z  o7 O0 |7 E}
/ K. u& E4 X9 n) K- O2 h3 O/ k; z% ?+ eelse {6 S8 m1 y+ [, m" K6 n" ^  O
echo "我爱
php2";
4 k( n4 K$ ]8 z) }! becho "<br>";
' n3 [- O- Q9 Y8 x3 p}
% k2 [5 i& x7 H. P- M. z% t' u?>
0 I' I, k  F1 }, t2 V4 {
6 h8 M) g, J; ^  L: j! @第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

! J# D' a  O# u% Y/ y( |- }0 d$ Z1 J直接看下面的例子

# B7 ^7 N3 v- W/ I" l$ I) {<?php ! T% k9 G- K2 ]. `- E
if ( $a > $b ) { " @2 ]* _- q, \- \. S
echo "a b
" ;
4 t5 Q+ d1 H# v7 u} elseif ( $a == $b ) { / {5 A5 y7 N( U& Y- y) J3 M* c2 ]
echo "a 等于
b" ; ; q; \) t& i; j$ H8 w6 x- F
} else { ' b! E7 {/ X$ C7 n5 J% l
echo "a b
" ;
! c" Z! k* D1 `0 |/ }}
( @4 i6 w* D- Q?> ( [! t3 ?' Q# j; `( p

/ }  [. I. X8 e4 I8 y2for循环就单纯只有一种,没有变化,它的语法如下

! c* Y/ f- O7 \; v
) s$ p. y9 ~* \for (a; b; c) { statement } , p8 r5 \2 y" r# T0 ~3 q. s
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

/ M2 a: Z$ a9 _, F! y' r, `下例是用 for 循环写的的例子。
% S6 Q! X6 \* O3 d
<?php
! A5 k( [) Q& v: xfor ( $i = 1 ; $i <= 10 ; $i++ ) { / V, K' Q3 [: C1 @' i3 z5 n
echo "这是第".$i."次循环
<br>" ;
- C6 q9 }4 l3 g8 i4 Y2 E& z}
, g; Z0 w6 Q+ p! s?> ( S8 T, }5 I* ~! R( h, }
% M) K: Q5 _5 U. |" N& n: W0 |# U
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
8 R7 a2 C: p) h
语法如下:
" \6 h; T" U- L+ X/ P3 cswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
# H# j7 P" d& C  _& W7 f8 Z  e
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
$ r0 Y9 u5 N* K/ n0 _
- U% }7 g- O6 e: b<?php
5 K  I4 x0 ]! ]1 Eswitch ( date ( "D" )) {
9 @# ]- s: C$ l/ j+ y% G& c8 hcase "Mon" : ! S0 Z( c3 t9 d! b
echo "今天星期一
" ;
) ~7 K; H  ]- Y+ Hbreak;
) P1 H1 d/ y0 F# [$ p1 wcase "Tue" : / j. ?. P0 ~& g; g6 k/ |; M
echo "今天星期二
" ; 1 e% C4 J& N$ L
break;
0 m' Y. ^3 a0 y, A& qcase "Wed" : # S% N! O1 P- p2 E, X
echo "今天星期三
" ; / I* u/ y+ v& B8 q9 @8 P# z4 E
break; & m1 g% @3 m" T1 u+ m) m
case "Thu" : * b$ \9 U; c7 s0 @
echo "今天星期四
" ;
: j( ?+ V, ?" \& i7 t& Dbreak;
7 Y: X4 e. {7 U8 O9 Q7 k% w' b% fcase "Fri" :
( \7 Z/ k* ^0 e- J2 v. f. uecho "今天星期五
" ; ! l  h% z/ |& M" w+ t* i6 X" @/ T
break; - [+ m9 ]8 ]' r) r1 F+ W& u4 `; t, k* k
default: # U0 b4 C" l2 r2 m1 b
echo "今天放假
" ;
' J, u+ F5 r' C2 _2 rbreak;
$ Y' a* r( D6 T3 Y0 c}
  I. h+ O, T2 i* s! h& M; y/ j?>
& b, Z8 z, T, e; A这里需要注意的是break;别遗漏了,default,省略是可以的。
0 S5 K  b* e0 Q0 u4 t
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

- v& C4 C3 r% E/ Y: b8 T0 x% `十天学会php之第二天就说到这里,第三天开始说数据库的使用。






欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2