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

十天学会php之第二天

php的流程控制
7 V! t, [3 N  m, w$ A/ `) Z1 G/ t" U" w* A' i2 L9 C" t
1if……else 循环有三种结构
" f, `+ Q0 Y% [
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 4 N$ `" N4 ]1 j0 Q& l; @/ K

5 y' b3 I  Y4 a0 _if (a) { statement }
: Y# S" ~* F* v其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
7 z+ ^) X. P+ T0 z& O; i: j
范例:本例省略大括号。
, k4 i+ A6 @, F  u/ ^
6 Y: @9 s1 @2 U
<?php + \8 j5 I, g6 n8 I. N% U1 a
if ($a==1) echo "我爱
php" ; 2 Z1 c7 j& K; |0 E) x
?> 2 }! [' ^! s& P$ v0 [8 z
6 F( v7 y" \( y1 o- l
这里特别注意的是,判断是否相等是==而不是=
  ~7 n" H% |( K6 o
范例:本例的执行部分有三行,不可省略大括号。
( P7 G" w, l+ W6 g0 q, t/ x1 r+ @
# o. L: h8 |( I8 p2 n- Z' G2 ?
<?php ! T- A+ ?5 |3 e* B0 M* Z5 M/ d
if ($a==1) {
. \( [7 w0 `. f' _6 N4 a: K1 Kecho "我爱
php" ;
; k, |- Q5 ^% C1 ?5 f3 Qecho "<br>" ;
* s5 a  |- O# u0 ~& ?7 y& z. ]7 d& B+ h, T}
9 o6 W. W" E9 e! R$ Z?>
9 p7 `+ a& J7 o  b6 B0 s$ P$ J; N, x  R
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

6 h  G3 Q/ S4 k8 c4 ~! p7 v3 O2 q" z# v/ D# r
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
5 |$ ]0 e- D9 y$ Z- ^5 V9 N. \
<?php
. v2 |- r8 i6 r( u( d; j# Tif ($a==1) { : l; [9 D8 X. T* I$ C( \4 }6 v
echo "我爱
php1";
4 C+ J8 `0 @$ o7 ?% v' jecho "<br>";7 S. E3 a: E; n# z9 u9 V6 {% s
}   S1 V, [7 y, C
else {0 L3 A7 U. U1 W1 W
echo "我爱
php2";
7 f& v& s$ A" Y% w& decho "<br>";
) E4 k# I  ]' n7 _; z+ n6 ]}
/ l* q8 @/ }1 ~) H, e' g6 K?>
5 H' z$ c# k; t# m" E4 U. U
; S& y7 p# c) y% X3 O, l& e第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

9 }3 S; L* z% C7 i( `" a9 _7 Q. M6 I3 z4 U直接看下面的例子
- @( Y7 s% g/ e9 v9 F
<?php
% a6 L$ u) X) X# g  `. kif ( $a > $b ) { * i/ o/ l5 q# {& y
echo "a b
" ;
4 o. X5 w5 {# C# U' @: @2 s} elseif ( $a == $b ) { 0 n( A$ V9 i: O8 o
echo "a 等于
b" ;
3 G5 S% Y  _6 b} else {
2 c% y: J' ]6 zecho "a b
" ;
; ^) s5 ?1 o$ D# p$ i% [8 x5 N}
+ u- x8 G4 o; E! H. x5 p?>
& T: d3 F0 |4 t' l/ Y  e
6 g7 N: {9 a  v: k% D2for循环就单纯只有一种,没有变化,它的语法如下

) b4 X9 R+ c* C! a2 O
& y7 a1 R! G1 Z( c5 h4 n; D$ `; Z# qfor (a; b; c) { statement } . D7 F& Z; Z5 x
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
, A% i4 X) f9 H6 L. l, H
下例是用 for 循环写的的例子。
0 z% X. i4 q4 A& s1 Y# `( a
<?php ! p. H0 Y+ b/ Z7 A. c% O8 B; |6 \
for ( $i = 1 ; $i <= 10 ; $i++ ) {
$ i1 n8 B/ p' pecho "这是第".$i."次循环
<br>" ;
& F! A3 l( ^( E} + j* k3 Y" ^8 m4 r
?>
; v& [  s/ d3 T3 g8 k6 X% p+ {% d: e% ^' w+ T" t( h2 u
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
6 E% _' K7 K7 o" p% m. A
语法如下:
8 ]: \4 p* ^% W: i( r* mswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
; P$ m, ^7 I1 k0 U+ P+ p- q
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
: M4 y! p3 m! F4 K: m- q0 O( W0 {: Y" e) @: ^
<?php 0 h: K) E1 e" e# a) w* y
switch ( date ( "D" )) {
: Q9 ~: N5 R0 s* s0 n0 Qcase "Mon" :
4 H2 ]' N" `3 u4 b/ G8 p9 s, fecho "今天星期一
" ; ! ?3 v+ U4 K- f2 g
break;
( w& W3 X" V& f2 F* s8 scase "Tue" : $ f9 y" q+ ]- J
echo "今天星期二
" ; % @1 P) o. h: l( V' e2 J4 [" \
break; & I) c# v; }/ d4 b; K
case "Wed" :
/ ~3 Y& z& e3 g  M3 techo "今天星期三
" ;
* U, @$ [! l' [" o( ]8 kbreak;
9 ?( o3 o- K& c& [case "Thu" : & h/ k+ O& ~) @" f6 x
echo "今天星期四
" ;
: A7 q1 n# S' r# `break;
  H$ ?, x: g6 H  Dcase "Fri" : . H; s  H+ a2 o  @. h
echo "今天星期五
" ; - y5 X+ ]4 x0 F+ H; N) f$ z5 w" P
break; 1 ]- t& t! e! c4 \
default: 2 }8 S/ U: q# h) e0 ^* k
echo "今天放假
" ;
. Z+ V+ D' X9 ^! Pbreak; 8 n3 M7 L! u9 Q# H% e; t, O
} ' d" X, W/ I- r) E
?> * S4 }. J2 e( X& P1 Z0 Z% j1 n4 V
这里需要注意的是break;别遗漏了,default,省略是可以的。
  I4 z* H0 q( z; W7 u& \! V
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
( \, n- b% P$ [& g7 l3 [
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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