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

十天学会php之第二天

php的流程控制
5 r' U: _  K9 ^0 j- {
% Y6 Q; f2 W! f1if……else 循环有三种结构

4 _" t: r5 O+ u8 y% ?1 P第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
& r& t2 T! V& k0 T7 z1 B! v) l7 \7 F* H; c9 ~3 Q' {9 A
if (a) { statement }
8 _; T7 T4 Y4 F+ A  i. G$ V4 M其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
6 X$ M; s1 T1 q4 ?# B
范例:本例省略大括号。

9 J4 c" O5 u$ c6 T5 {2 V
" y2 O4 ?3 h0 \7 R. ^( n: d% {<?php 8 _8 M! O* l9 e& s  T9 d, V8 [( g
if ($a==1) echo "我爱
php" ;
& V/ F- k+ \$ E* e0 j  F, _/ o?>
9 l( ]3 l- C& P0 t5 I. i2 m
0 p+ p$ \6 |4 e这里特别注意的是,判断是否相等是==而不是=
. e. ^/ L8 x) T4 M' y
范例:本例的执行部分有三行,不可省略大括号。
+ ^9 v" T$ a$ \& }& K; \! B

6 r/ ~( U; ?; B( M# p<?php
7 ?, p2 c9 e/ M7 V" h7 k, t$ dif ($a==1) { 4 O+ m2 z6 ^. Y: y9 L# @
echo "我爱
php" ;
0 a1 b6 o9 p/ {& \, decho "<br>" ; 8 S) a$ Q6 f* z# c" a3 O' d5 \& v
} 4 R; p: Q% L( |; h- E) W4 ^: q
?>
1 j; }- N! T: n% L7 M4 [7 f  C' H% P; e3 z) ?% u
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
/ D% V1 `" b6 x3 N

5 @$ U4 ^1 E( y/ k1 A- E, lif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
" R- F* [+ R4 s2 U) B$ R
<?php 4 ^9 b, }& w* w0 h6 l5 f  r7 p
if ($a==1) { ' r' j. b4 h+ f7 ?* Z' T  {
echo "我爱
php1";
* H$ C! |( j& mecho "<br>";
; M) w: @6 u3 g6 F) C  R} $ N4 M" A8 |+ P8 |) @# p; Z, x
else {
6 x  E# h$ g6 |- q- P, V0 k2 _echo "我爱
php2";! r/ Q/ T7 B* N/ J# y
echo "<br>"; * ~# x  m( ?3 N2 N% a' I+ r: ?0 \
}
5 C6 y  D% k% g3 s?> ( A+ p+ Q# v" s: t2 h* E3 F' T& S

8 z  h# a& U$ Z. z" j7 _; x第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

5 x8 m  A4 x1 [$ w% |直接看下面的例子

5 @  @3 [  U9 m% g6 }% z<?php 1 c; T' Z7 H* d- e
if ( $a > $b ) { * U  H3 N: d/ Q0 u9 L3 ]
echo "a b
" ;   |7 j3 ?5 Q: W  H
} elseif ( $a == $b ) {
9 N. @7 w: l! s% |6 p) Qecho "a 等于
b" ; 2 O9 I; ?) g0 J: p& Z- D
} else {
4 M9 p& Q4 o- Q, c8 A6 @  xecho "a b
" ;
5 Y, [. b7 D( @; T- S3 Z}
6 K" I, m) M+ z?> / t! n5 Q( c0 W: m

3 n. t: X4 q  [+ |/ x7 V9 f* K) E2for循环就单纯只有一种,没有变化,它的语法如下
, U2 ^. U; H9 R. I' }! s+ y

5 D" S4 L% s. Q% Z* ?; O( ~$ hfor (a; b; c) { statement }   H/ v# K3 g4 N4 |/ I
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
+ c& U( n/ l6 A
下例是用 for 循环写的的例子。
' j* w2 i" b8 V, Y8 a1 S' `
<?php
) F4 n. Y1 V" j1 v0 J* @8 xfor ( $i = 1 ; $i <= 10 ; $i++ ) { 1 T/ ^* C) p. M, }4 r/ g7 x
echo "这是第".$i."次循环
<br>" ;
8 J+ a  S' k7 w2 e  A7 {}
  U, {3 F6 B5 X) d* m  A. h?> 9 ^; r5 u+ u4 t% a& E6 R, i
) l# f. C& P  Y5 I1 f
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
! w4 t- @  T1 L/ F! q
语法如下:" b+ O5 Z( X( F7 i6 Q/ }
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } ; @2 i7 }) G% ~. c! Y1 d
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
* S% g7 r1 ]! r( X  f  X  ]. J; m+ y
<?php
; V! U. {. R4 n2 y: L) cswitch ( date ( "D" )) { # D8 {& P  I. C
case "Mon" :
  [  V8 K: I, L, T/ x+ {echo "今天星期一
" ; $ q! n$ e% d9 F" L$ o
break; % L3 s5 k3 _- T) v7 G
case "Tue" : # P: Z3 u2 D6 [' h# G' I0 F( d
echo "今天星期二
" ;
* v/ P; B9 [1 Nbreak; ) c2 V$ O) W6 c; v5 I! Y: `
case "Wed" :
& f( w% A8 m4 x" R0 Gecho "今天星期三
" ;
( H8 n* c/ H4 \3 Vbreak; 5 `9 R$ D/ n: Y& A) j( _6 G; N# _
case "Thu" :   A0 y4 s0 h4 X6 [$ L- O
echo "今天星期四
" ; " M1 l1 h1 Z* B4 J7 F2 z% L' t1 C! P
break; & p3 Q  L& S8 g
case "Fri" :
! z8 p: S" k8 ~, Aecho "今天星期五
" ;
7 ?2 g5 F& n# d# abreak;
7 s2 H! B/ ^# v+ S; f/ Q/ q, Odefault:
" \9 M/ l. h. C/ v4 jecho "今天放假
" ;
( ~4 n5 ]7 {) U& ]: r* kbreak;
" s% D3 W  \1 ~2 ?4 M) r} 5 W9 {( \( B2 p$ U
?> % i% i# `8 O- Z2 V9 }
这里需要注意的是break;别遗漏了,default,省略是可以的。

  Q. f+ i/ d% p0 _. ^很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

: a% ]! L# x: \. v; B$ a# R十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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