返回列表 发帖

十天学会php之第二天

php的流程控制 : s/ p& T# Y: z: I) D

6 D& u* }8 y; j" x' A1if……else 循环有三种结构
# ?5 j* u2 _  ]- e1 H, ^
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: # Y+ b# U5 x! O
5 @1 n1 w' K( S" o* A( H& g9 M
if (a) { statement }
; a) n$ u( \+ H" R4 z8 l其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
0 }. U0 u- `) W8 }' o
范例:本例省略大括号。
3 }( k4 o; g& {0 Z2 f
$ R! J1 v( ^( ~/ l
<?php 7 F( t5 w7 C4 B+ V# N
if ($a==1) echo "我爱
php" ;
$ @1 {8 p% u7 L?>
$ X, [* @# [. @9 D0 F- V
% q& N: F8 s$ {. l9 I9 ~这里特别注意的是,判断是否相等是==而不是=

- C. B" m1 S% K+ |# D范例:本例的执行部分有三行,不可省略大括号。
1 o5 l" C0 C+ H2 w1 R
( Q+ c+ s' M* U2 T' `( s% ^
<?php
- F) J, X( N2 g* H% Jif ($a==1) {
& S, a7 t0 \* w6 P" zecho "我爱
php" ; ; X0 W7 {) E+ a
echo "<br>" ;
+ x' `. I: _3 I" O+ }( q5 l} % t& F% ~8 H1 |
?>
! F8 g! r. o: U3 t
6 n, b/ f8 f1 h: s第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

* S  g9 W# Y5 t+ Y* L
3 h/ y1 i/ Q( O* [: O: E- z1 hif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

" S/ L" T- a: L( T- Z1 G<?php
1 @+ R& W0 A. w  y3 _: \if ($a==1) { : c, q7 z: y& E0 E
echo "我爱
php1"; 4 I; [4 K& K0 t$ |7 ^# \
echo "<br>";+ h. O$ ~6 o& b6 m7 {
} : ^- V7 A6 |9 o  C4 B9 s! Y% S" S
else {$ w6 N1 g% ]9 Q" h* R" A
echo "我爱
php2";
! n: b: F4 k) @0 Gecho "<br>"; ) D% Y# y0 O% x8 @1 [6 S* e
} 0 B: T3 b) \% R# l/ ?8 Y* ~, V- v$ ]
?> * c2 g6 v7 U# S) |: o) R+ `6 S* Z

) k9 G; b; I9 @# x- d# H9 X第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
' W5 L0 U$ O( z3 T' ~
直接看下面的例子
* G/ V. |* {; T
<?php
9 w5 S  M  {5 x* d' m( _& Z4 Fif ( $a > $b ) { ! T5 l9 d2 _* ^4 m
echo "a b
" ;
; Q. s/ |  `, I1 y: d, H} elseif ( $a == $b ) { * D" v* ]" m1 m9 t1 `( m
echo "a 等于
b" ; " q# Y, {$ U, Y, O' p
} else {
# ?& M# h0 ^9 t0 t6 A1 [, [- Decho "a b
" ; " x+ _& {: {. ?6 ]0 K; H# v
} ' ?# z2 w' [' W
?>
* ^# q5 Q; H: w
" h% B  }, @# d; U2for循环就单纯只有一种,没有变化,它的语法如下

% l2 F# Q+ U& q' j1 p) F% V1 @  @: d2 I! B4 }, v
for (a; b; c) { statement }
( V! M5 r9 e* A1 s7 a' G其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

' a$ `8 {( O  _; y" q" d下例是用 for 循环写的的例子。
: B' g0 Y& o  n0 E7 g4 z
<?php   m/ s! |4 }2 Y! p, G: G; ]
for ( $i = 1 ; $i <= 10 ; $i++ ) {
! f; u6 s! w+ v# Wecho "这是第".$i."次循环
<br>" ;
0 l- B# O' {% S/ o. T: p' L# ^}
0 M: ^7 \: d1 U4 t?>
2 C8 K: N* P; |( m; j- k" V( {% ?0 ]8 M) b
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

& w- y( b% M1 [语法如下:
: p, v  [6 A( F6 J5 Wswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
3 k" l- u# }6 b7 K- y4 y! i
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
; ?* O+ a4 w, m& X/ j1 f# r! t* G1 b2 @2 ^
<?php
! R" U/ D2 R) h+ D& x7 t& s, O/ g8 wswitch ( date ( "D" )) { 1 ], t+ e. C' m' d; k
case "Mon" :
1 P, P% _# L2 n8 p' Becho "今天星期一
" ; & Z& p0 ^3 P$ f0 n( i  q
break;
0 M$ c. C) p- X7 Y& s: P- X1 ecase "Tue" :
1 |  t, C/ k  I/ ?$ Fecho "今天星期二
" ;
# L- G+ O: W% K+ T0 C& Y- Gbreak; , N# N. ]$ J+ j3 z4 e8 D! p
case "Wed" :
. u# a) w6 u7 p3 q( P6 techo "今天星期三
" ;
, o; q+ _6 L5 n( D+ o  U! L- |break; 8 l3 `9 s6 h; W! H
case "Thu" : - I* G( w1 t9 ]. V7 B. `5 b# z
echo "今天星期四
" ;
9 _, t' B& H  u1 }5 V- T. X; ^break;
/ d5 A. v* D2 r1 Dcase "Fri" :
, i( G4 a/ M, C: K. Necho "今天星期五
" ;
  E5 ]; P* J2 q1 E6 ], v, K7 Z; wbreak;
) F- E& k6 i$ k: Kdefault:
2 M& s* d2 L% j+ O- uecho "今天放假
" ;
! x- ^3 }0 a& T2 |9 L! [break;
' Z2 u/ f) q5 n, l+ t6 T6 }}
6 z' F: q9 D8 ^8 v?>
" r* l" b: J0 D0 e. E4 f/ \+ E. U这里需要注意的是break;别遗漏了,default,省略是可以的。
, F' _8 R* ~+ [% _7 |5 P
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
! D. Y7 z1 r9 N7 g- v1 C+ N
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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