php 语句
表达式
语句
结构语句:
·顺序结构
表达式语句、复合语句
·选择结构
if 语句、 switch 语句
·循环结构
for 循环、foreach 循环、while 循环、do while循环
·跳转结构
break 、 continue 、 return 、 exit 、 die 、 goto
4.1 顺序结构
表达式:
声明、赋值、运算、判断、空、复合表达式。
复合表达式是用{ } 括起来的几个表达式组合。
4.2 选择结构
if 语句的一般形式如下:
if ( conditionExpression ) {
executeExpression;
…..
} else if (conditionExpression ){
executeExpression;
…..
} else {
executeExpression;
…..
}
例 4-1. 判断传过来的数
<?php
$gue=rand(1,100);
B:
print "猜一个数(1-100):\n";
A:
fscanf(STDIN,"%d",$i);
if(!is_int($i)){
print "请输入一个数字:\n";goto A;
}
if($i<$gue){
echo "小了!\n ";
goto A;
} elseif($i>$gue){
echo "大了!\n";
goto A;
}
echo "恭喜答对了!\n是否继续?输入'y'继续\n";
fscanf(STDIN,"%c",$a);
if($a=='y') goto B;
?>
switch 语句一般形式如下:
swith ( $what ) {
case case1: {
executeExpression;
….;
[ break ; ] // 如果不加 break,后面的句子也将会被执行。
}
case case2: {
executeExpression;
….
[ break ; ]
}
…..
[ default : { // 当上述几种情况都不是时,执行这一句。
executeExpression;
….
} ]
例 4-2. 判断接受过来的数据是什么情况。
<?php
print "输入1、2、3 和 a :\n";
fscanf(STDIN,"%c",$i);
print $i;
switch($i){
case 1:
echo "ONE";
break;
case 2:
echo "TWO";
break;
case 'a':
echo "A";
default:
echo"DEFAULT";
}
?>
上例在进入 switch 语句之后的执行情况:
判断 $i 的值符合哪种情况,则从哪种情况“一直”执行下去。
default 表示任何情况。
当从表单中输入 a 。将会一直执行 case ‘a’:后面的语句,因为没语句break ,也就是说 default 情况也会被执行。
4.3 循环结构
for 循环一般形式如下:
for(initialExpression; judgeExpression; untillExpression ){
executeExpression;
….;
}
例 4-3. 从1 加到 100
<?php
for($i=0; $i<=100; $i++){
$sum+=$i;
}
echo $sum;
?>
上例在进入for循环后的执行情况:
首先 $i 被赋初值 0 。
<循环>
计算逻辑表达示 $i <= 100 的值是真是假。
如果为假,退出循环语句。
如果为真,执行花括号里面的语句;执行完毕后计算 for 循环的第三个语句 $i++ 的值。再回到上面<循环>位置,
while 循环一般形式如下:
while (conditionExpression ){
executeExpression;
…..;
go_out_expression;
}
例 4-4. 打印出 6 的阶乘。
<?php
$r=1;
$i=6;
while($i>1){
$r*=$i--;
}
echo $r;
?>
上面例题中,执行情况:
<循环>
计算表达式 $i > 1 的值。
假 跳出循环。
真 则执行花括号内的语句。执行完毕后,回到上面<循环>位置,
在使用 while 循环时,要含有一个能跳出循环的语句。否则就成为死循环。
do while 循环的一般形式如下:
do {
excuteExpression;
…..
go_out_expression;
} while ( conditionExpression ); // 注意:分号不能少。
例 4-5. 求出 1 加到 100 的值。
<?php
$sum=0;
$i=0;
do{
$sum+=++$i;
}while($i<100);
echo $sum;
?>
上例程序在执行到 while 时,计算出表达式 $i < 100 的值是真是假,是假退出。是真返回到 do 处继续执行。
do while 与 while 的不同之处是:前者无论 while 表达式是否为真,花括号内的语句至少执行一次。
例 4-6. 循环的嵌套,输出乘法口决表。
<?php
for($i=1; $i<10; $i++){
for($j=1; $j<=$i; $j++){
echo $j, "x", $i, "=", $i*$j,' ';
}
echo"<br />";
}
?>
4.4跳转结构
exit 语句
exit 是结束当前程序语句。
break 语句
它表示中断循环。它后面可以跟一个数,缺省情况下值为1。表示中断几层循环。例如 break 2 表示跳出2层循环。
例 4-7. 打印九九乘法表。当乘数等于7,后面的不再显示;当被乘数等于4时,后面的不显示。
<?php
for($i=1; $i<10; $i++){
for($j=1; $j<=$i; $j++){
if(4==$j) break 1;
if(7==$i) break 2;
echo $j, "x", $i, "=", $i*$j,' ';
}
echo"<br />";
}
?>
continue 语句
当执行到 continue 时,它表示后面的语句不再被执行,回到循环体继续执行。后面的数缺省情况下为1,它表示出几屋循环。
例 4-8. 输出九九乘法口决表,乘数等于4,后面的不再显示。
<?php
for($i=1; $i<10; $i++){
echo"<br />";
for($j=1; $j<=$i; $j++){
if(4==$j) continue 2;
echo $j."x". $i. "=". $i*$j,' ';
}
}
?>
观察:用 break 1 替换上例中的 continue 2 ,看一看两者的执行结果是否一样。
return 语句。
一般用在函数里面,用于函数的返回值。
也可以用在外面。当程序执行到 return 语句时,将 return 后面的值返回给调用程序,并且结束程序。
<?php
function one(){
$str="\tone";
}
function two(){
return "\tTWO";
}
print "ONE:\n".one();
print "TWO:\n".two();
?>
·理解PHP 的四种控制结构:顺序结构、选择结构、循环结构和跳转结构,并且能够熟练地应用。
·循环结构在循环体内,至少要有一条能够跳出循环体的语句。否则就成为死循环。