返回列表 发帖

十天学会php之第二天

php的流程控制
0 I. l2 c. v2 M" W( ]$ W) @
0 f* s" Q2 W! P: N% c+ _4 Z6 U1if……else 循环有三种结构

& b9 J; m# A( h第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
: ]6 O0 h/ @: K9 y& w! D# c
( S) T% U. A6 u2 f7 Hif (a) { statement } * w# i, l/ }! Y* i& a" m( F
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
; C* K# ?; Y7 \: y
范例:本例省略大括号。

$ a! ?1 l6 ~0 i* [8 A/ [* w* g: ^$ S& o2 c& D* C
<?php
' m; ?* D  ^- m, L6 cif ($a==1) echo "我爱
php" ;   r5 L. N" e9 B  U7 T% y& O- p! F
?> 6 o; C1 @6 \8 C; n1 ]" i
# y+ g0 V- [8 r. `3 m- n
这里特别注意的是,判断是否相等是==而不是=
* D- c% G- C, Q- u' p
范例:本例的执行部分有三行,不可省略大括号。
' W" X/ x, z1 l- x3 _4 R2 Z

3 g7 d5 j) t2 T7 B<?php 6 b4 n0 M0 Q1 X3 Q: W
if ($a==1) { & Q8 e( v  b/ u3 O2 i# i  R% w
echo "我爱
php" ;
" V1 G) z  l5 _8 l( y1 Xecho "<br>" ; ' a, X; C$ L% ^$ u
} $ F" i% k8 F" h  A
?> " [; C. F- a" ~9 P
! q  D- _3 x& i# g) l2 r
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

+ ^8 D$ W2 _0 I, w+ Z. |3 p) ?, `
$ W# l# c& J( {if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

+ K% g5 P7 e' x' h# h<?php
. p4 G! r- i- d) L: ^( P3 r! cif ($a==1) { . y) P5 K' U/ G- f. `
echo "我爱
php1"; / o' A  c7 _5 L% r# G! G$ Q
echo "<br>";5 S" U3 Y, T( \' t6 \3 Q6 C
} 5 a5 w9 W/ B" u, f
else {6 p& m+ ]3 f. I4 Y" [$ V9 _( h) m
echo "我爱
php2";
; J0 ^3 n$ J* g; [/ J: C, P2 Mecho "<br>";
6 j  w# D* A0 q$ z# ~. H1 z}
, P* W7 \5 d! Z) y0 G/ [?>
% \9 Z; N; P4 k1 @/ F& d0 l% M( u; ^) k0 q
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

) X: [% C7 a$ r直接看下面的例子

/ o- `% S1 q- j, n% e<?php
3 i% a) e; M- A9 j. @  Pif ( $a > $b ) { * o5 Q( [1 K0 ^4 `: v
echo "a b
" ;
4 x% N3 D9 K# X- d6 h% l' w} elseif ( $a == $b ) {
3 V( n$ K% s0 C1 [& ^echo "a 等于
b" ;
# K) T+ C4 K$ Z0 V! {. `1 I} else { " I5 _; d  u5 X/ @/ Y" d1 L
echo "a b
" ;
0 q" H0 V9 r+ }( _2 D} . `, r: `# a% @1 G; G7 c3 [. ~
?> ( M+ r0 I, S7 k# a+ D  ~0 ]

6 S0 \( }$ B  ?2for循环就单纯只有一种,没有变化,它的语法如下
6 v% D  l$ `$ _6 a! q

% `( u$ Y  h+ y, R4 X& N0 g) V1 U/ wfor (a; b; c) { statement } , X0 e2 W/ W5 e7 m% W% `5 R( X
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

& T, l( G8 G% x3 M3 U下例是用 for 循环写的的例子。

2 I4 U- C- y  ?6 ?( V<?php
' v- R  F! g7 d5 Wfor ( $i = 1 ; $i <= 10 ; $i++ ) {
% o* A5 n5 D6 O3 Z; B0 secho "这是第".$i."次循环
<br>" ; ) T2 |& q3 }" _$ Y& ]5 ~9 s
} ! w9 I; G7 C# N/ p# C: j5 T+ J% l/ E
?> * t) v, ]: P+ B
7 s& J* I# m3 `$ @. N$ p/ L
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

( s* i! f5 Q+ M* Z7 U/ P语法如下:3 h' H& Z  X# t" }$ Z2 i1 H
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 2 Q0 O' |, o1 r2 g! E! r; P
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 . f. M) l% M( N0 a+ f2 U6 D
7 `* ]  I+ F* p4 X7 S
<?php
$ [3 v9 G5 ]3 V4 `4 yswitch ( date ( "D" )) {
! J8 I7 |: g) tcase "Mon" :
) E1 q0 Y4 ~6 f# s# N. Recho "今天星期一
" ; ( Y) X) b0 v; ^
break; # h' o# m  D* ?" d6 \
case "Tue" :
; [; R  \- Y0 D6 I) ^6 k+ ]9 o$ i2 `echo "今天星期二
" ; & e2 q+ H) L7 J1 C* u. I* Y
break;
7 q- N7 h2 c% \9 ?case "Wed" : % A' x1 _! l! v1 P! Y  r5 ~' T8 V
echo "今天星期三
" ; * B- j& Z+ z" Z  m- C) r
break; ' d3 ~7 G: d4 q5 @" G' k0 U: |, D
case "Thu" : + R3 f8 W* Z( D: S6 ?' ]/ B  \
echo "今天星期四
" ; - J. y# n6 ^: f3 d% t5 ?: m
break; - W6 Y) U' C  _: O3 K7 [7 c
case "Fri" : ! n7 z; D  P- f: y
echo "今天星期五
" ; + }; v1 u* W) ~, }
break; 2 D$ f$ u% x2 F. s
default:
3 S9 J4 T' \$ R! i( ^. m4 L1 `& Yecho "今天放假
" ;
  V, C& g+ W5 A! Vbreak;
: S7 t5 a. H0 M) Z9 j1 Q: z# H, C}
& N, }, x+ H7 C! K?>
' S' b  h1 L  T) M3 b( q7 P4 d这里需要注意的是break;别遗漏了,default,省略是可以的。

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

9 k1 N6 T3 C7 {. U  g6 m十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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