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

十天学会php之第二天

php的流程控制
4 f2 Z! ~6 T' U
: O6 R% ^/ o& a* S0 V1if……else 循环有三种结构
! d( P2 i# z! N$ l- p4 j9 g" f
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
1 |0 V  i$ m1 v! P3 D3 K! ]3 ?) l
& |# o3 A+ ~  n- I/ P9 Qif (a) { statement }
8 B8 {0 k  K% Z4 n7 M7 h其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

; L+ Y7 X$ w. D8 _/ U范例:本例省略大括号。

9 O+ Z: O* p( |' \, g( K+ c( h% Z  K+ F. w# M5 C
<?php
7 G4 s6 ~* w; a% g, Y0 i3 P; bif ($a==1) echo "我爱
php" ; - g1 [& g, Y4 r+ s$ m
?> 3 O* J* u( F; G  I) x. w
: U' F: m, g. E( {0 d! E
这里特别注意的是,判断是否相等是==而不是=
  d; ?' F4 _5 k; N6 L7 z) ]5 d
范例:本例的执行部分有三行,不可省略大括号。

$ T) o9 G1 R# w- [8 R$ m4 \$ G
) d/ {8 X. i( B+ w<?php
; m, M# t$ K; s0 Oif ($a==1) { - x* a2 X* k0 N' s. A* y7 r( F
echo "我爱
php" ; 4 C& f8 n6 p- f" V  O' e
echo "<br>" ;
; ~3 p+ E0 K4 }6 w" e: ~} ! [9 D/ T+ M; z9 J4 {1 `$ w: H* a
?>
5 \. D( M$ f4 }. r) h! K; P. A7 L9 S; G
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
, Q/ @0 q3 a: o7 x9 d
7 E7 _9 L! C0 c! Q# `1 |9 d) [
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

# C1 V' v4 v3 I5 @: G<?php 2 |, G! e6 L9 V" B
if ($a==1) {
& q- w: B: ?: [& g% O" Kecho "我爱
php1";
2 K  ?0 f4 O5 `# A( Z, B4 _3 R& eecho "<br>";: r7 u7 T1 p9 l" ]: M, Y% i* C* I5 ]
}
6 `- L* O+ U) ^; f- }/ q6 p4 ^4 Celse {
3 x, C* J) i5 f# _# _  e1 A: Aecho "我爱
php2";
- v2 T2 i( E9 c( ^0 L' q; L; M& eecho "<br>";
4 e# @& _/ u5 c$ w/ |' a} ) T% [/ i% {9 V( [7 [+ C) b) ~$ ]
?>
- `. L" \/ g7 D- T0 `- X, ^9 x
) W' [8 t+ U0 I9 D  z( Y- K) {第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

; [! d' H5 t( G- U- ~: d: O直接看下面的例子
/ F) e3 c! N1 |, J- W
<?php $ _, A& j3 q0 k. \% C  {; {& \
if ( $a > $b ) {
( Q* w1 T3 A+ l5 J% [echo "a b
" ; ( x9 c* E. h5 [
} elseif ( $a == $b ) {
+ t4 E$ s; L4 g5 \- ~. N6 eecho "a 等于
b" ; ( l" u) [( H6 D1 o% G
} else {
/ k& \3 V& i/ z7 H: @echo "a b
" ; 4 T) Q6 j) r* C6 t  T0 b; F
}
1 [0 J) J; I3 ~& B9 X?> % @' Z& L0 b* `' V, O, i  D# H
4 N  v+ X+ l& H. x( J8 I0 d1 f: T
2for循环就单纯只有一种,没有变化,它的语法如下
1 s/ e) R- p1 `

4 `" {" h8 l9 c- T0 m; jfor (a; b; c) { statement }   O3 I. I9 g/ F' t/ x$ L
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
: h9 Q2 ?5 g+ e6 J+ Y" T
下例是用 for 循环写的的例子。
2 N0 F3 O: M. d: V5 I; Y
<?php
8 ?$ y& p( Z& A( O' ifor ( $i = 1 ; $i <= 10 ; $i++ ) { 3 {8 }$ \5 H- v' n1 x% s. u' t
echo "这是第".$i."次循环
<br>" ; " M( w2 v, C- c! a7 X! `, c
}
: _  \; @$ V1 H6 ]/ i1 y( f$ b& F?> 3 |$ h8 R$ I8 m8 j

' i6 d6 k/ P1 h/ w  `* K5 E3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

( q- c) q8 y2 T- Z; m) V! ?* T1 a语法如下:9 ]' j: m! g# Z# ]* `
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } * v* {) N6 \9 d
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 : B3 Z  \0 ~* t0 u

6 \: @6 v0 B' r" q  j3 Z6 ]% y<?php
2 p% B; \, a- K0 @switch ( date ( "D" )) {
3 y( q* E1 j* rcase "Mon" :
$ S$ w6 [1 R5 `3 l& [$ Z/ L7 w" U7 kecho "今天星期一
" ;
. B0 P. Y/ ]; Q+ qbreak; ! T, S( U1 C$ C- O2 b! k
case "Tue" : 3 Q1 y  f& A" u3 n4 D
echo "今天星期二
" ;
5 B8 q. E* Q6 c: a; y1 H( ~break; 4 D" a7 W$ A% I% v2 |' }
case "Wed" :
: N6 y% t4 d8 Y" Wecho "今天星期三
" ;
6 V  x  J. q7 V6 N. @  Z2 f" _break;
- u1 t' X1 E% s5 M/ ~  o" `* rcase "Thu" :
; {5 h  p( G! W& Zecho "今天星期四
" ;
* Y  k9 {, D3 |, t8 ybreak;
, W9 }& p* `% ocase "Fri" :
+ C3 ?0 U% V: O1 Q$ [9 a0 J  A' {echo "今天星期五
" ;
( k. f% A+ o( |0 w4 k, }break;
/ ]4 y* v& p4 L; ?: H& Wdefault: ; }. ]6 b5 E8 h/ b+ Y, ]7 c
echo "今天放假
" ; + q3 m7 d6 I: k/ s
break;
$ P. T  F2 q" q) z: M' R0 L} , d( T8 s1 I$ [. J0 @1 n9 X6 n& g
?> / p2 N2 G& o$ J5 N, J6 A
这里需要注意的是break;别遗漏了,default,省略是可以的。

/ \2 u4 f. E6 J3 {9 t9 s很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
2 F2 l5 K, ]4 l5 f: b
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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