返回列表 发帖

十天学会php之第二天

php的流程控制
! |& B$ O8 J& {2 L2 f  t) I  S% u& G1 |: |* U) }( Q
1if……else 循环有三种结构

0 c9 g& o' }7 |# @! j: S5 Y第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
% ~3 L! f3 e/ R( \1 C- J: `) {6 v' z0 C9 a7 I4 e! u
if (a) { statement } # X% X. v4 l3 I! F; Q4 i* K
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

2 U% P) Y. ~& b4 Y' M范例:本例省略大括号。

* m2 k+ P: H8 x& S& n  ?: z1 f( {: w
<?php . o. n7 A. x! ^1 I( P% V/ ?3 m
if ($a==1) echo "我爱
php" ;
  y0 P0 P8 }5 T% T?>
# O  I" G& S3 U0 Y6 s5 u/ T
: ^! v3 ^( n6 g) H这里特别注意的是,判断是否相等是==而不是=
: H+ u, @) i, ]! J3 d  x  f
范例:本例的执行部分有三行,不可省略大括号。

  w8 F9 J8 a2 w$ l' G; O8 {2 S% q
<?php * t8 l" @  p* X7 d6 |
if ($a==1) { ( \, F2 I0 w/ b/ C# f1 A' G
echo "我爱
php" ; - g/ B8 y6 @2 b6 R
echo "<br>" ; * @5 Y% O5 Z! E, }- P. l, [
} ; V  c% h& |1 S# V4 `& T
?>
% w8 s' F! r1 `
$ J5 j4 [# G0 a第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

- I% |" w8 n" P- ]3 G& G
6 K- t& e/ u  m& V! \if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

% x/ U" @; [+ V. ?( b<?php ; m0 Y" Q$ _& f. o
if ($a==1) {
( {  |( B9 n* Recho "我爱
php1";
0 P2 _* V6 l' B- uecho "<br>";
* L; F8 R" H* G& Y& ^( x; c}
/ k' m( l+ v) k) u; o0 j4 Oelse {0 a; a; f  l/ m+ _/ C% [7 B
echo "我爱
php2";
  [. c/ ~+ ~) F; Jecho "<br>"; / u! m* p$ O( K, z: F. z
}
) y  F' @6 A. V% h?>
- `5 C* B0 v; W, z6 X' ~3 F$ G, e8 b: [
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
! v* X, U  ]" b% p' K) c! n
直接看下面的例子
  \$ \( D" j+ j
<?php 0 e+ s% Q$ K* Y, G% r9 _# M- k
if ( $a > $b ) {
( I: C" C, @# ?' K; l# \6 decho "a b
" ; 6 [; H) J& K3 E
} elseif ( $a == $b ) {
- z- I( I- z, Techo "a 等于
b" ;
3 X# n- |: e% c0 d  y} else {
! L; Z3 ]% Z8 {" D, u& Wecho "a b
" ;
9 y" I# h% {; V# ^}
) Q# \7 B# S! H+ k. o8 M. `# E+ i. w7 ??> ' L( ?1 H) n" F* A. F
9 _5 r. h1 R$ `( ~, Z. _
2for循环就单纯只有一种,没有变化,它的语法如下

. ]- \* o. y9 y) e* `& {+ B
3 [& w, l5 J6 F. T3 \. Z( C& |for (a; b; c) { statement } % R, K4 _; g8 C4 _
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
# {6 ]! o+ S5 w) n& d. z
下例是用 for 循环写的的例子。
2 J- i, T' G: Z* w
<?php 7 x* o2 v/ H) s5 L. P' v
for ( $i = 1 ; $i <= 10 ; $i++ ) {
" s. D$ H$ Y& F3 s3 Z: `echo "这是第".$i."次循环
<br>" ; * b  i3 t% F+ ?5 a
} " U! F; D7 S: P' W) t* G
?>
- D) V4 G* D* d, M' J$ ~' K
  f8 E/ z+ N. y0 S" z, W+ \* w) L3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
. e- a, `' M. ~% A+ n, W
语法如下:: Q# e5 Q& y, F
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
: ~: f% M# R4 _6 Q' e% p( V
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ( w0 T1 i+ _* k% Y- S  F. J

7 Y$ [5 ^. }9 m, P# \1 B2 `7 R; q<?php
( d4 q. D0 M4 Q$ wswitch ( date ( "D" )) { + G: Q" _$ ^0 g$ f% o& ^" U
case "Mon" :
2 l9 V8 R5 X& ?4 O3 h6 {1 fecho "今天星期一
" ;
3 B, w& I  }) M8 L! Ubreak; 5 \/ K7 X, w: e3 M3 f
case "Tue" :
1 Y& U6 r" y' ]+ B5 yecho "今天星期二
" ;
# y* a1 _1 p$ j  H' |break; 7 h& X, e  [6 i) X) f
case "Wed" : , ?7 {' G# }$ s$ n
echo "今天星期三
" ; 1 I+ X+ r4 n) Q% U% O, ^+ a- b* [
break;
  J! ^7 s2 A8 h- V5 \case "Thu" :
7 @- n% J! m$ A! Xecho "今天星期四
" ; . k% T0 S6 D3 P0 a) h# d7 [  K
break;
4 J! W7 U# V! v( y) n- J$ scase "Fri" :
+ q# p* [% @# H  \' _! y( x& k+ ]echo "今天星期五
" ;
+ `# z* ~% A8 x  ~/ L) W2 h6 A5 V8 zbreak;
( M+ M6 r' f" Z7 s9 `8 ?default: 7 C& p5 K# c/ G! J  s+ u2 S, D* ]& @  x
echo "今天放假
" ; 1 |" Z3 y7 r  G5 m0 Q% m3 Z
break;
+ H3 T2 E; L0 Z& S2 ?6 [}
* i1 P8 o& ?- Z  _?>
( e; j% a1 M1 ]& S1 c这里需要注意的是break;别遗漏了,default,省略是可以的。
7 I4 T/ D1 \" `: ]) p
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

2 k$ ]4 h4 L9 G  F十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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