返回列表 发帖

十天学会php之第二天

php的流程控制 1 G* c( h8 H$ t  O6 _6 y

  h; r# B" z+ e7 U9 d* i1if……else 循环有三种结构
, D& [4 g, q4 }5 w; e) p
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 7 d8 R4 o0 [3 {5 z
4 o: p* B5 E3 P5 L. O5 f
if (a) { statement } 7 N6 R, z" q) l0 b
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
& t$ M! E# R+ h' Q) G
范例:本例省略大括号。

5 x0 g! G; X2 B& f/ g6 |( J" }* e1 W1 k. ~, }
<?php 6 A1 O  l0 c, }
if ($a==1) echo "我爱
php" ;
; P) \+ f" C+ X, h4 m?>
* s% T; |3 t7 @2 v- n
5 [7 l8 A! ~9 k! G* W7 g. x这里特别注意的是,判断是否相等是==而不是=

3 `  E1 G  p4 h0 R4 y. y; ~范例:本例的执行部分有三行,不可省略大括号。
' w- z5 F& ^: ^$ v
. o; C  {  h, J, a9 `- S
<?php * K% ]' j+ {+ x* _3 |) j
if ($a==1) {   o2 }9 v4 j) H6 H; b! B+ d
echo "我爱
php" ;
4 l1 h9 d  I) Decho "<br>" ;
, b& S( I7 X; x$ x, a. y} ( X2 l- x4 h5 D" X
?>
3 c+ b: _% f: y# T7 E9 x
2 J1 Q) ^2 m+ N+ [, N第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
& h0 H5 c0 g! H! P+ F
- \3 l5 J# i% L! n# X- T* c* Y3 ?
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
( r. l  V7 {' x; o' o
<?php
( R" y- r0 t2 H* s/ Aif ($a==1) {
3 m, Q  H* Y, K  Fecho "我爱
php1"; 1 t) R6 G! ]2 M, l# [
echo "<br>";
# b7 U( k2 r2 x: S4 E! ~$ B  a} . d: L& P! k! }: x7 n3 T
else {
, |* y+ n, Q0 z: V8 G& Fecho "我爱
php2";
2 w; |5 r$ _5 ^" {0 h% g. gecho "<br>"; 7 f8 R5 @% H! [5 |3 y6 X! ^
} , ?/ I6 {$ e2 A5 J1 T7 w- H, t
?> " q& u; U6 p7 ^- |# m4 ]

4 d' p$ \2 |- Q# B( [0 R第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

2 P3 Y" z$ K" q0 L# t" P& F直接看下面的例子

( J! @% ~/ M/ }& B) R* H<?php
$ c. b( E4 o% O% {6 Fif ( $a > $b ) {
: M0 n9 B8 I( z! r9 n6 P! h3 m2 lecho "a b
" ;
  Y+ S( S* @% ^( {* _} elseif ( $a == $b ) {
# O' H/ v% `4 w7 Y3 recho "a 等于
b" ;
% }( s/ @# |  D- W" R' z} else {
0 n7 i) L% P  [1 T2 s* Y6 Eecho "a b
" ;
* ]4 U! @( f* p& }8 ]% A}
# o( B: F- j* r. T& E?>
% M1 f$ `- V; I: r9 x) X/ e2 S3 r4 T1 v- ], t+ [: i
2for循环就单纯只有一种,没有变化,它的语法如下

( m* G( n! |5 ?( K
, L3 H- N1 q6 I' Kfor (a; b; c) { statement }
8 A4 q, n1 J  x  ^1 I其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
2 t  v6 E, Q' {2 x+ Q
下例是用 for 循环写的的例子。
2 ^) H& b+ R5 b0 c1 Q( E9 R+ d2 }
<?php
4 ~, C7 ?- r6 |- g, D0 C/ @for ( $i = 1 ; $i <= 10 ; $i++ ) {   m% u/ ?+ ~) o+ ^" U" h: E
echo "这是第".$i."次循环
<br>" ;
$ S! b! J3 {: a5 b* Q% B5 H$ N} * O! L- Z$ r3 W) m
?> 2 W% I  ^6 \) r* ^6 P/ f9 L

' ]/ f+ S1 n& H  t. d# g! ]3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

6 \7 m1 v! h) @# H' m8 O+ l语法如下:
9 j; h2 b) L/ Kswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
9 }0 z* W. C: e9 T* B( P% H, p4 M
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
0 t; Y) B7 j* }& s9 k  B4 S5 F- P
$ `0 G5 d+ S" ^* G; c. V$ s+ S1 [<?php 8 r% b# l: @6 T* [
switch ( date ( "D" )) {
0 Y  ~  A- a9 ]# w. f7 y  l3 Jcase "Mon" :
+ K- a/ {- @2 N: A. k' E: @: Yecho "今天星期一
" ;
9 X% C* U7 ^! m. Z0 H1 S$ hbreak;
/ t( {; @4 r3 dcase "Tue" : 9 ^, V8 f) @( Q/ O$ u
echo "今天星期二
" ; ! |1 c+ s6 r* p' Z5 j+ Y
break; 9 R7 g. y/ D- {1 p' L/ q
case "Wed" :
' L$ V4 H  w0 Q6 `- B3 yecho "今天星期三
" ; 5 T4 u7 @: v$ }9 J: [9 s
break; % Z- t" ?: G( L$ [
case "Thu" : 0 J- {) q/ P2 n, b5 A: g
echo "今天星期四
" ; # c9 ]& I2 z8 p) g  ]3 j% B
break;
" S! Z/ u$ b. z" P0 v7 E/ f; {- tcase "Fri" :
1 y% ~2 c2 b" ^  l: r' Iecho "今天星期五
" ; ; D- ^0 r% ^* I' Y5 x  [9 X; @" ^6 a  E% ]4 d
break; + f3 Y2 V! @/ e/ j4 N
default:
2 L3 G" ~/ i( [. V& h' A3 t3 vecho "今天放假
" ;
7 c: Y5 z2 A% m+ C' gbreak;
3 t9 C  w  n& V8 Y" R4 W7 c0 c2 N} ( {' q, C, ~% A3 H% l+ t+ o7 @- @
?>
; @# `+ x- v% A( O- C/ c  o* \2 V% t+ D这里需要注意的是break;别遗漏了,default,省略是可以的。

( w- [. T7 g4 X$ k. H+ \- K9 a, a很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

+ f. E& p: Q1 U. L# y- k十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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