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

十天学会php之第二天

php的流程控制 2 L' f" u" X. v5 g' y

  R8 u/ A- n" W+ }% k9 I1if……else 循环有三种结构
1 A# ?# t0 i+ A" x0 n/ T% X$ P
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: $ L% q: f9 O! T4 A3 f8 O
0 G3 U0 S8 V6 u$ z" r7 d3 a
if (a) { statement }
& j4 t  ?& v3 l7 Z, m其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
& B+ w: i: @1 w3 O; r
范例:本例省略大括号。
1 n5 J& Z; S/ w2 c  ?
+ O& s7 M) [/ W# R
<?php
$ R9 J! [: k! I! V& wif ($a==1) echo "我爱
php" ; 6 g' W! m# w: f; p9 _% P
?> % I% `* V  C, {3 Y# s' E" u* d

) ^& B; w7 v! T5 Z( w4 o这里特别注意的是,判断是否相等是==而不是=

5 U# ?2 Q  T& _1 ^& B5 o/ Q! z) E- h范例:本例的执行部分有三行,不可省略大括号。
0 G: f# x0 s; J0 a
/ K3 F' f7 g( P. @
<?php
1 c* D! y4 {; b$ J7 ?& Mif ($a==1) { 9 H# v: s& s% I% d
echo "我爱
php" ;
+ J8 M+ p1 q8 i" W2 |' v5 z% w3 D% ~% uecho "<br>" ; : ?; q" ?( r) ~8 G8 H
} : x7 g7 }6 f: J3 K: Z" V
?> + P4 O8 T4 \$ G: X7 l: C/ j, r

6 f8 [6 o" [) d! W1 ^第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
5 y" b- R5 h& w7 H* P6 }+ j- G
9 L/ H7 {' [3 V# M* q
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

/ {. r' N* b! t9 }/ Z& U/ q<?php
6 \) `7 U' }2 L% r1 ~9 }if ($a==1) {
- w) Z. a9 ~" u2 a, |echo "我爱
php1"; 1 y  k& U4 @% Q; a3 h5 e
echo "<br>";
& }0 X+ s! U! E4 z  ]' @: M} 8 F5 ]1 ], O8 O  m9 C6 N
else {6 d( A( Y1 b( d* ~
echo "我爱
php2";! w0 r; y: r4 v1 c$ ~
echo "<br>"; : m+ ^/ R8 F0 O0 A2 }
} ' J$ F" c1 w6 M5 @7 `
?> % `* w2 G; [/ G. d: S
- e" `+ T$ f7 D2 s
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
  D; d0 i8 `% o7 n/ u0 k  v" ?- t
直接看下面的例子
( c, S. v/ }; @. D, c
<?php ) f, d0 j2 n' _$ u8 |
if ( $a > $b ) { $ n, P7 e6 X  F& }- ]8 ?
echo "a b
" ; 3 t$ _2 M% o% D% v
} elseif ( $a == $b ) { ( n' p) c; d+ t
echo "a 等于
b" ; 8 M( D& _1 h/ h+ [! U
} else {
! X5 U* b" A$ {6 h0 Becho "a b
" ; 1 W8 d* Y9 j" ]: k. [8 m
}
5 r3 z& {7 P/ k  t( z?>
2 d  I4 a& S' E3 b6 N. o4 d# w! _6 m
3 x: ?: \# A% P) m% \2 A2for循环就单纯只有一种,没有变化,它的语法如下
, a1 h8 g  m6 o3 i

( O/ d" v( ^  n  P& T7 Afor (a; b; c) { statement }   l1 R( n! K2 Y, ]9 n+ Y
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

4 I0 `* ?' t' ^5 n下例是用 for 循环写的的例子。

. v, [5 J2 [- F8 g1 U<?php 6 \0 Z) x% S- d: @
for ( $i = 1 ; $i <= 10 ; $i++ ) {
4 d/ @; f) E6 a2 p, b+ p3 h1 Recho "这是第".$i."次循环
<br>" ;
1 K+ i1 Y7 h0 m; O8 L* |3 y9 k}
5 ~- d6 x. x" I) f! _! h?>
/ e4 D+ R1 _7 T! s
0 U7 Q; F5 \. n, W+ g3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
8 U# A) A+ d% b) Z# l4 l/ g
语法如下:
% x2 o; |4 X. vswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
) p" t' l  V- K
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 / K& J. B) \# H5 |9 r- i7 Q

) d* h* c6 N1 a7 p<?php - s- Z$ {  D2 P5 u7 z
switch ( date ( "D" )) {
' V  u! _0 Y8 e9 ^- f, }case "Mon" :
, {9 h! _2 b- D# |' u& U: y4 t+ V6 kecho "今天星期一
" ; / _0 b! E' F# `" O2 M
break; 4 r6 P8 }& f( r
case "Tue" : ' s5 G* g) ]9 h; f
echo "今天星期二
" ;
; l& \; c+ Q; P8 K. q: fbreak;
6 H2 o8 R; \' ~" \- P9 gcase "Wed" :
6 z5 l% Z5 d" n$ `& }7 Q% necho "今天星期三
" ; 4 a0 |% C0 p; r) A% Z$ S0 r
break; 1 H4 S3 a  k4 \: U. |" j* s
case "Thu" :
1 l2 Q) Z+ k6 B5 V0 T7 A' @2 Necho "今天星期四
" ;
/ ]+ B& G% n$ `7 t7 S5 u! \& nbreak;
0 u9 v$ w( Z2 A1 k" a( @case "Fri" :
2 A" d2 F" F$ r, N' S% a' b& Eecho "今天星期五
" ;
* W6 R5 E6 L4 ~  `5 ^4 L  S7 fbreak; 6 y0 m' d. f1 o
default: - ]) }; N1 Y. D! b5 s
echo "今天放假
" ;
2 d$ K# C+ c( x: C- F- Ebreak;
5 S# d  A6 Y" Y/ [} 2 T, m# z) h9 F+ Y5 @6 U
?> % m7 r/ m& B+ }' p
这里需要注意的是break;别遗漏了,default,省略是可以的。
5 K  K8 Y- Q4 _3 T
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

- b2 A8 g  K$ C. g; D( W十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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