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

十天学会php之第二天

php的流程控制
" ]: b: _4 w' j: }+ S5 ~; i  K& ?2 l6 Q/ ~$ B* s3 V8 @( u
1if……else 循环有三种结构
% o; X. M& y) I5 c
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
" o# T6 e" S. ]" }# f7 D# c( T3 R3 T' C9 X, ~) P3 x1 d2 B
if (a) { statement } + m6 F3 D' ^3 t0 n4 r
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

- _5 S, Q* j# L2 U6 ]2 e9 f9 G8 K3 G范例:本例省略大括号。
. a  A: S3 d. C, n& ]' }

: h5 x1 e8 b3 j5 l7 i- K1 H: F( r<?php
7 N3 ?, W- R+ f& t4 {4 nif ($a==1) echo "我爱
php" ; : B  z; m* J" c7 k, j4 X
?> , P# @+ }( R! P9 t
6 A% @$ g$ d) T+ z
这里特别注意的是,判断是否相等是==而不是=

& N5 I* _; C+ _4 k范例:本例的执行部分有三行,不可省略大括号。

. C' u8 T2 K% l- t& r0 V9 m$ W9 {! [
<?php
/ M  E0 H4 G& y: Hif ($a==1) {
- X( V& ~+ Q4 P& J* V( A4 u  U' oecho "我爱
php" ;
( J; T$ d4 v5 Z" O+ H+ J: ^echo "<br>" ; , X; N/ O* ^5 i" D/ @. _1 h" D1 f
} ' j; c: {5 G* T, s
?> 0 [2 c# h! H/ j9 q" P
% W7 W! N) }: A) O( g
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
, e% S% c! M* @  {4 v9 p

- |9 r+ A& j' eif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

$ e$ D: M; ^# v( |<?php 9 I# t$ d6 A: Q, V
if ($a==1) { 4 C( u6 o2 t% L. d6 g* }
echo "我爱
php1"; 2 b  _  S  h! T2 ~  u, Z
echo "<br>";
  [+ s$ q# ?6 @}
  W- v4 A6 Z+ y& ~; felse {' b; }/ u* E7 Z- A
echo "我爱
php2";
* S. y; f2 E1 ?' `% j4 Mecho "<br>"; 6 o: L; K( l3 r. o
} 0 L$ \% n' z9 e0 R, C
?> & w3 S- _9 k6 |- i4 R

5 ?; \$ Z, n( L% i2 Y: K5 o' L$ G第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

3 |! S" [( E9 c0 K直接看下面的例子

: X' p2 b2 Y5 o0 O# l<?php & P: H: j1 k  d0 M
if ( $a > $b ) { 1 s7 m( e6 u3 ^6 O1 @
echo "a b
" ;   l8 ]) V$ Y! Z. S5 Q1 B
} elseif ( $a == $b ) { , r4 L/ h+ l4 n0 o3 G0 s; F: s
echo "a 等于
b" ;
' ~! ~1 S9 Z: @. l6 \} else {
5 M, ?& L- D- ~8 Necho "a b
" ;
1 h& Z# m# x" d6 t9 N9 |}
- Y9 i( K8 `0 e  b3 G1 K, M?>
$ D- C5 {0 l. B) q* a
" }7 \" d5 u  g2for循环就单纯只有一种,没有变化,它的语法如下

8 V6 d- L) R, |" m* W% H, E2 }* U7 @: ~5 c+ W8 D% T  F
for (a; b; c) { statement }
* D$ _7 p: i7 c/ b& W+ T其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

' B5 I+ {6 ^3 R$ x8 A下例是用 for 循环写的的例子。
0 H. `, p; A- U" Q
<?php
0 z. r1 j! Z2 K: k$ y' }for ( $i = 1 ; $i <= 10 ; $i++ ) { 9 o( J, G$ C/ F& a7 {& [; w5 }# t
echo "这是第".$i."次循环
<br>" ;
, w2 J4 l% ^* I. y8 \! a}
% j- m" [$ V2 u! U8 A! E, \?> ' Y6 S, H8 v) @$ N. I. r9 e

2 n. I, \: u, X( |3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

8 @. v! K3 N$ s, B; O* p9 s0 o语法如下:% K& n, J4 ]8 O
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 J- X5 p8 k. c$ N* q, X. n
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 & m7 V9 C9 K4 i
( K, j( z3 C3 J; \0 x
<?php
- [; _* T* P$ d& b$ sswitch ( date ( "D" )) { ; \. x+ _3 }  @! V# k0 w
case "Mon" :
$ c. o6 r0 q$ H2 z  Wecho "今天星期一
" ;
7 H4 ^& ]6 U8 b) Z& kbreak;
( V' O- U$ T. n7 w0 M/ G& Acase "Tue" :
7 ?' y) D. I7 s3 Xecho "今天星期二
" ; 0 t0 L1 j1 P$ ~& d7 ^
break;
( o" `/ U3 X1 zcase "Wed" : , j1 |! w, m- o( a
echo "今天星期三
" ;
5 I5 B8 F: {6 ?5 Kbreak;
; S* ?/ ?6 F2 ^# scase "Thu" : ' F" E% B: T  B) {
echo "今天星期四
" ;
6 t& o& z/ P+ w9 B4 e6 [break;
0 a& B, z0 o* N$ ^* [4 fcase "Fri" : & _# W, S/ N+ S" L2 L
echo "今天星期五
" ; ; ]! ], Y7 s4 P. S. w% Z8 x& m: o4 j
break;
( u7 i, E; V% S9 S3 F- _default: 4 b4 d4 u; |5 b0 H: R, l! X
echo "今天放假
" ;
4 A0 `0 ^) i- [- w6 E# X% \break;
, e6 I4 ^' k4 X2 t( i} 4 ?, p3 [' E# r! k
?> 0 S, s% A) Z* m: A) j# {: p
这里需要注意的是break;别遗漏了,default,省略是可以的。
7 j7 q" B! |; T8 M. y: k
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
  ~" P# W8 `) z$ |4 c; \
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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