返回列表 发帖

十天学会php之第二天

php的流程控制 # x* G9 b: z6 Y! d, V

3 _* C; y. \; |/ D$ v7 X1if……else 循环有三种结构
5 ?# s) N* w$ W" F  y( n$ f( \( Q$ l
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: # `+ @2 ~5 Q( ^( P" C% D

- K/ E0 R+ {/ r$ n5 n- V% Z+ x1 h. Y; \if (a) { statement } - J4 A: r8 t! Q+ H$ G! V- I
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
; \  g9 F1 A7 m  n* l$ J
范例:本例省略大括号。
2 w! X- r, A2 k' M

4 o5 B, ?; Z7 V& C7 q0 H7 d<?php
" E. t8 v( I+ ]( u- Gif ($a==1) echo "我爱
php" ; 8 l+ y" A5 q: e7 h( D8 m
?>   _6 }5 A3 T6 Y

7 X" d6 R2 u2 x9 e, N. E这里特别注意的是,判断是否相等是==而不是=
6 j9 B0 M) V- C5 w/ C1 N
范例:本例的执行部分有三行,不可省略大括号。
0 }, L, n1 h" n6 T$ {  l

% Z  l7 _4 ~6 w<?php
* c; ]8 V. Q( N. H0 i- e. D4 y6 g) tif ($a==1) { # k* ]! N9 h, m4 W% b$ Q) M
echo "我爱
php" ;
2 n& D: ^8 d! k5 k0 t4 E* Xecho "<br>" ; 0 K' Y# J1 S) A
} 5 y, z+ z; Z8 R6 v# s
?> " T; F- g$ p% {; x* x2 O

( P/ P  L+ ~; x/ z第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

8 u# m) o6 @: P6 H" Z* ~
1 y5 K% ]8 A* M6 ?, [if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

* Y& D7 h# a6 b# Q. ^, U<?php   _- r0 u, @1 E' G2 D
if ($a==1) {
' ~$ t' G$ q1 b: mecho "我爱
php1";
% \! M5 A2 _3 h+ O3 I! Hecho "<br>";+ `$ Z3 |& k+ I! j6 w2 [0 F
}
' n% `7 ?# O  ~" Q. v9 W* qelse {7 g2 e+ z1 S# O8 F3 e+ T4 A9 F
echo "我爱
php2";
5 n+ u" x* K8 j9 O' i9 Techo "<br>";
' _/ G% F8 A. r4 Y& W9 H5 ?}
3 q$ K) ]- Y$ m3 ~4 Q' }$ H?> : D, ~* V3 p, |* A3 T5 F

8 C; E& a# d" Y! G第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

; B' [" _6 l& y4 J3 t! n直接看下面的例子
5 l* F  I8 U' P5 U
<?php
' ^0 L/ Q, N  V  Sif ( $a > $b ) {
: N% |6 }  g% p4 becho "a b
" ; 7 C. [/ i. I% k5 F# Y" t/ l
} elseif ( $a == $b ) {
0 g- d# \7 H: l8 \' Iecho "a 等于
b" ;
% l0 `9 k: X  f% s} else {
+ `" f/ k4 A' N2 yecho "a b
" ;
. w- P$ R' ^9 y5 Y' j, E} 6 k# M( u5 [# `$ A; E- ]$ B
?>
# s+ T1 D2 ^8 _" Z- K
" j& D: A) T& n* M$ R( O2for循环就单纯只有一种,没有变化,它的语法如下

% [, b# J* B8 W- l# K
- o4 h6 s6 }4 @: E; w2 B" U% S; Cfor (a; b; c) { statement }
( a. |7 L1 Q9 k5 f# v4 ?其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

' d8 X+ v% _8 }- e下例是用 for 循环写的的例子。
% ~0 y& |! G' A% U+ F( y
<?php
6 v4 s/ j; ?7 w9 `1 hfor ( $i = 1 ; $i <= 10 ; $i++ ) {
" Z  B: k$ I0 N( {# hecho "这是第".$i."次循环
<br>" ;
7 @, Q' \4 Z1 ~5 Q; }4 ^: V3 ~4 v! e}
, z- j6 p, {" v/ }?> / {7 [2 W3 z& X3 M. O

9 a/ [6 }8 g; L1 m1 P9 v3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
. J* K  C/ ]) L% x
语法如下:/ M- M2 a: T! K& E5 K
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
. g0 ~: B' F2 G6 S
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ) D: h7 w! I0 P$ h# j; n6 x
  w& t- |8 g9 x3 w
<?php 9 D' n  o( j2 x% b
switch ( date ( "D" )) { & Y2 B, t' e. @3 t2 j7 I
case "Mon" :
' F/ a) P/ N, I( w& mecho "今天星期一
" ;
# t6 P1 n% x+ R) Z! N) ebreak;
6 n" s' \& Q/ }  V# J  z& Kcase "Tue" : + f* m- ?4 P/ {2 @
echo "今天星期二
" ;
5 |' b. m9 Q0 Abreak; 3 B* m* m$ I' _  l7 V' k" {1 J3 b
case "Wed" : 7 p7 w& K5 c' B; E
echo "今天星期三
" ;
$ |# [# J( c& r1 R" w- _break;
+ G4 ~1 i# M5 e1 T8 L! ?7 ecase "Thu" : - [4 E1 J1 k3 k
echo "今天星期四
" ;
: w3 _& F( @1 z" D5 Pbreak;
* l6 a# z/ Z" r: m+ Ycase "Fri" : " `. Z- Z/ l1 U$ P( E
echo "今天星期五
" ; . Z! [8 H1 T% p4 c) R
break; # p4 ~6 X& {6 y( T9 b0 X
default:
4 o; c* q- r- o4 E- Cecho "今天放假
" ;
* i5 \5 A4 u$ S% Q$ zbreak; ( O) T8 s. g8 m' V. d
}
. d2 Z6 Z! Y& }; |. a+ i?> & C4 ~& a7 I2 {  L) \/ u
这里需要注意的是break;别遗漏了,default,省略是可以的。
; q" |  h( m) w" M! @
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

4 q1 G6 ~. `. w十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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