返回列表 发帖

十天学会php之第二天

php的流程控制 3 [; V4 f" m. n: g. n, a( ~5 n

2 }* r$ T. f) I. Z& D/ p' d( d" s; p1if……else 循环有三种结构
- j6 ?5 ^( D0 m. t
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:   l9 E7 U+ B8 N7 H# u% ~6 E7 u  N

8 a8 i* Y' c! O) Aif (a) { statement }
8 X4 M4 ]* h3 n其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

% x2 a! }) e7 O; u范例:本例省略大括号。
) Q! L7 ]2 G* d9 O6 `! d, r( I

) O# l* ^7 v: n5 i, a<?php 4 {& r+ V( x& ]) h. @
if ($a==1) echo "我爱
php" ; : X6 I( y' ~# E, G1 P
?>
4 [4 o' S& g4 \4 Z
' d9 L4 w& a. F这里特别注意的是,判断是否相等是==而不是=

/ z3 g) i" W% u: O  o范例:本例的执行部分有三行,不可省略大括号。
1 M7 ?9 g" [" _( p: L( G2 D! k0 |6 F
/ V' a9 e8 a. h4 w5 e; q+ L$ x6 O
<?php
+ d$ P, d4 E/ o; C0 Dif ($a==1) {
) z7 m1 O1 M% d1 S& Y# P+ fecho "我爱
php" ; - J4 F/ Y0 Q2 E
echo "<br>" ;
- s  W+ m' N+ J& d+ Z7 Z7 T8 L}
+ ]/ p; v: P: n, a0 A/ u?> , E" Z  [' H: x0 P' W$ W& S
  c/ U1 h9 j* E: U: j
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

+ r6 e% \7 Q% i) J' I* x% A8 t( s( K6 Z" t8 g, m  L6 h
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
* _8 @9 j; L( j$ v. M
<?php
- W, d# A* G+ oif ($a==1) {
- y! ~* l) F$ K. z8 d3 necho "我爱
php1";
+ T2 C  o" |4 q+ s; m3 I  {# v$ gecho "<br>";
& k: l" R" u1 A2 b} * v7 k7 Y+ U; T( _& h1 O+ J
else {& F; z* N/ S+ i2 c' p7 M
echo "我爱
php2";& y3 r5 Y" Y6 L( \' c
echo "<br>";
8 d: r* k& p. Z# ]} ! J0 H2 r8 b) p
?> 9 T- U6 r# B, ^5 n; v3 Q9 G5 u
4 r& ~( ~7 m& Z% ^8 v" [
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

, ]4 O8 D9 g7 v9 p直接看下面的例子

* @* \! k: b8 \# x* j5 B<?php
7 e& ?5 N" y$ p# u4 I/ nif ( $a > $b ) { , W7 n) n  k" Z- B
echo "a b
" ;
4 N0 t; g2 b5 [6 t. v} elseif ( $a == $b ) { ! O- V5 }3 w1 X% ]
echo "a 等于
b" ;
, ^* D4 S7 _% K9 Q1 U9 M+ Z1 s5 G' O0 N} else { 9 J$ o' x( B* d* ^7 t1 f
echo "a b
" ; 0 ^  K2 u6 ?6 @; |* B
} 4 `3 L$ J2 G: z3 _
?>
$ D1 ]6 P, w5 F1 J$ d5 o# r' K. b% O2 T4 c
2for循环就单纯只有一种,没有变化,它的语法如下

0 v, A2 R* o" j& _4 K( S! x0 C: B9 i! m( W. |: T" W) _* i
for (a; b; c) { statement }
; g- r6 r0 |. k其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
) \8 S$ b! p5 T2 o- }# ~' V4 {
下例是用 for 循环写的的例子。
! }2 _8 ?0 ]4 f2 \/ r
<?php # U; B3 S# z6 J/ G* b
for ( $i = 1 ; $i <= 10 ; $i++ ) {
4 ^1 o: _2 y% x- Jecho "这是第".$i."次循环
<br>" ; ) P( U: l& b1 p! N$ y2 g
}
% ?. U4 l6 \5 I; m' M4 m; n?>
2 @2 j, {8 y) R6 d
' P' p3 `7 {5 R& z6 ?3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
0 ?- C/ }  U: |  ~
语法如下:
  G4 v: I* b( O8 l0 F0 d/ S8 hswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } * g" L! c' m$ j* n% I6 C& |. z) e, y
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
, a6 r0 M+ l" R# Q" M' ?, e
) }" ^$ I' f% j% L6 }3 J<?php   \" e* T% h7 d) P
switch ( date ( "D" )) { % [' f6 Z7 I, @9 V1 u( t$ x
case "Mon" :
* y9 Y# H0 l; uecho "今天星期一
" ; $ J! Z3 g% C0 N. `
break;
2 F! C$ z$ c3 M' N4 o8 Ncase "Tue" :
3 ^3 `; w9 ]# j8 k% a; Xecho "今天星期二
" ; 2 e9 |) a+ f$ W( y
break;
2 i. _) w- K! Kcase "Wed" : 8 g. f/ H7 o5 `) Y
echo "今天星期三
" ;
$ L( `+ i6 Y! f0 g) U/ p, @break;
0 [4 v+ w5 f1 N4 Scase "Thu" :
3 j) H+ e+ l3 K6 v+ necho "今天星期四
" ; + b; s+ y0 K/ p( F/ p
break; # j5 x* o8 B9 f! ^/ Q8 O
case "Fri" : $ T& U7 w% Z4 b% e
echo "今天星期五
" ; ' {- c9 ?1 ]% D$ b% Y4 F3 Z7 {+ z
break; % v" j* ~" N  P/ C( k# g; l
default: 9 }: T2 x) p# ^# l3 Q
echo "今天放假
" ;
1 Y( l$ a; f! E2 abreak;
2 V* V: |, c, ~! B' V( g3 W8 N} + B2 A1 O2 Z) m4 ~* g7 L
?>
' n* s- t$ y  K; F4 a6 o! t9 K) y这里需要注意的是break;别遗漏了,default,省略是可以的。
% t& V3 k5 q7 B% O* r
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

4 W+ q  H2 f( R1 U, e+ G: C4 a十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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