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

十天学会php之第二天

php的流程控制
& b! `- ?& v" }+ D
* n1 g5 C7 k' y( b- B- P  r1if……else 循环有三种结构

6 U" i# G2 e2 F8 K! j第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: * B3 g& V+ J+ H4 V/ U3 m

# J. |4 g9 t6 j6 \& r1 L& n+ n* Rif (a) { statement } ; T- V6 K. E5 Z* C: M9 z- \2 e4 o
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
, v  C$ t6 U* ]7 f# t% ?
范例:本例省略大括号。
' J5 ^( o5 V# V+ J& B- ~
+ P0 {7 l# L- w( ~0 Y& a  q# {
<?php , Y" Y$ b( Z- w' X8 k
if ($a==1) echo "我爱
php" ;
: M* k9 l6 H' |" G2 h# l; E' R. i?>
/ k  H! T: {, l
4 r2 _3 [8 a) g6 s( d这里特别注意的是,判断是否相等是==而不是=

: @) ^& w9 ]+ S范例:本例的执行部分有三行,不可省略大括号。

0 o* A8 @' e; o; b' g) w' _( P$ ^1 P  T, W) m: R+ ~( v  M
<?php ) D4 O* ~9 x2 ~- l: V
if ($a==1) {
' o/ I8 M+ e# m4 e$ o$ l& becho "我爱
php" ; 6 y( l$ x; r3 W( Y7 T% [
echo "<br>" ;
5 u8 T7 L7 b7 A} 5 r# d! ]3 _! |& M7 R6 A1 x) t, k
?>
% U' o$ u; I) f1 b" ~6 }) s( s( ?3 |5 }, Q
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

+ N% i; }( K% U1 g9 z. P1 R/ y$ e3 e7 W* ?0 V
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
& `4 V7 R5 E1 [! n4 ?0 y9 l
<?php
/ j3 i5 o9 b8 M8 h& j6 a0 ~' Uif ($a==1) { ' [# p/ `. w, W1 s
echo "我爱
php1"; ) Q9 o, v+ S+ O9 b* R, a# e* L
echo "<br>";
9 D6 H# M0 }2 O# D& S& r' ~} , E* g( R* q0 R% X9 N( y
else {
! }1 D0 J) i" k0 D& Recho "我爱
php2";
' C" l- w: N7 m+ o: v* Z  W' Xecho "<br>"; * W1 ~0 D  S( E" p  d
}
6 Y4 j! S' W8 H+ y4 D7 J5 n?>
, y4 J/ `% m7 W8 @6 ?! U% g% Z! L# {0 o7 Z0 s: A% d+ t5 K
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

+ E2 S& o4 C0 X& V% O直接看下面的例子

" e! o% ~7 a* ?6 `0 A<?php 0 q: X" z" a! d
if ( $a > $b ) {
" p1 E% |) u  qecho "a b
" ; 2 T5 o6 {6 K9 b/ k7 J: P- q/ Q, E
} elseif ( $a == $b ) {
" z+ y# @" ?1 }" ?* J4 Xecho "a 等于
b" ; " N1 I' L9 X  i, e( U) q
} else { . \2 W3 M; |, x( u* `' O
echo "a b
" ;
0 I: I) V  D1 x8 q} 4 M1 N$ d1 d( w$ r  n% t
?>
9 Y) D! K9 B! |- c, q. U2 V
' }. h8 C/ A! B8 w( W  X# O2for循环就单纯只有一种,没有变化,它的语法如下

0 e' L9 R; c5 _
* t" p9 V3 w2 ^for (a; b; c) { statement } - |# Q! e( I) Q/ \* Z/ F. |2 X8 o) i
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
0 J2 Z8 ^3 s$ n3 Y$ o9 I7 n
下例是用 for 循环写的的例子。
0 p8 i. L9 n' \. A
<?php ) ?3 l/ A0 `+ W5 J$ L5 B1 f
for ( $i = 1 ; $i <= 10 ; $i++ ) { . v* l, U5 `. O
echo "这是第".$i."次循环
<br>" ; ; b5 ~8 Z& F. Z8 A) y
} 0 I* H" i  p5 e: _% ?1 S* ?+ O2 q
?>
, D5 s: a$ T( F, F( h8 B" _
: J3 k7 O* v7 x( j# x; n3 n. o3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
& b& T1 a! |: B5 x* ^8 a
语法如下:
" W# J& K2 m7 [' I6 G' Y4 Oswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
( G( A+ E5 c1 E4 q2 C
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
' z4 A4 s. J- p1 z$ ~! Y3 V! f/ t# E: `: ]6 R2 ~2 y- a  G, E
<?php
  q# m7 b  e! t$ e! V$ }7 @& `switch ( date ( "D" )) { ! d9 n5 F* Q+ b+ H. D3 }
case "Mon" :
/ i- k1 `# Y/ {echo "今天星期一
" ;
. h  |- S: J1 s: Hbreak; ; V3 W5 v7 a3 C) X! ?6 o$ E* e
case "Tue" :   b" F5 w0 S) }7 Q5 f- G  x$ u: F1 v
echo "今天星期二
" ; $ D: r0 ~/ u9 b% z" s6 b0 x
break;
2 a7 B1 @, s0 h& m& D8 Pcase "Wed" :
9 B- O8 B6 N5 M. c) P: r" _echo "今天星期三
" ;
# G; R* z, f5 p; _) d, Q5 l! ibreak;   O+ e9 _6 y/ @! N; Y
case "Thu" : * k  d# x- _: B2 Z) f0 V( P
echo "今天星期四
" ;
9 Q9 O5 d& }2 W  ubreak;
) g; {/ k3 x2 X* Scase "Fri" : # R8 |8 j3 a. |6 t* F6 J" V/ Y! _$ Q
echo "今天星期五
" ;
* C- S: L" ?4 fbreak; 8 B8 T' q/ u  K1 _2 k
default:
0 w& `6 J6 u0 F/ {( s% hecho "今天放假
" ;
7 K7 M8 u+ ~0 y4 wbreak; 5 |7 Q- Y# \* C# E9 _/ H" n
}
/ t4 {6 {% i4 w/ Y0 [?>
& b4 o: O6 }; W这里需要注意的是break;别遗漏了,default,省略是可以的。

$ _: w  {" N+ Z. g很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
0 Q+ ^+ j2 u, ^5 B! |% u
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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