第二节介绍一下php中的分支结构和循环结构。
赵庆贝
一、分支结构
1.if结构
1)if(条件) 执行代码; (只限一行)
2)if(条件)
{
执行代码
……
……
}
else
{
执行代码
……
……
}
3)if(条件)
(
执行代码
……
……
)
实例:
<?php
$timestamp = time() + 8*3600;
$season = date("m",$timestamp);
if($season >= 1 && $season <=3) $season = "第一季度";
else if($season >=4 && $season <=6)
{
$season = "第二季度";
}
else if($season >= 7 && $season <= 9) $season = "第二季度";
else
$season = "第四季度";
$now = date("Y年m月",$timestamp);
echo("当前是{$now},($season)");
?>
此处着重讲一下: time()
time()为格林威治时间,这个也叫做时间戳。
即:返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
而我们位于东八区,所以我们的当地时间就要加上 8*3600 。
实例1:
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 days; 24 hours; 60 mins; 60secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>
上例的输出类似于:
Now: 2009-03-30
Next Week: 2009-04-07
实例2:
<?php
echo(date("Y年m月d日 H:i:s",time()+8*3600));
?>
输出的即为北京时间, 注:绿色逗号一定不能丢。
实例3:特此声明:
1)“D”为星期的前三个英文字母
2)“w”为每个星期的第几天
如:
<?php
$week = date("w",time()+8*3600);
echo("{$week} ");
$weeks = date("D",time()+8*3600);
echo("{$weeks}");
?>
输出的结果类似于:0 Sun
2.switch结构
switch(条件) 注: 此条件为变量
{
case值:
执行代码
……
……
break; (结束)
default:
执行代码
……
……
break;
}
实例1:
<?php
$week = date("w",time() + 8*3600);
switch( $week)
{
case 0:
echo("星期日");
break;
case 1:
echo("星期一");
break;
case 2:
echo("星期二");
break;
case 3:
echo("星期三");
break;
case 4:
echo("星期四");
break;
case 5:
echo("星期五");
break;
case 6:
echo("星期六");
break;
}
输出的即为当地的星期时间。
实例2:
<?php
$timestamp = time()+8*3600;
$season = date("m",$timestamp);
switch($season)
{
case 1:
case 2:
case 3:
$season = "第一季度";
break;
case 4:
case 5:
case 6:
$season = "第二季度";
break;
case 7:
case 8:
case 9:
$season = "第三季度";
break;
default:
$season = "第四季度";
break;
}
$now = date("Y年m月",$timestamp);
echo("当前是{$now},{$season}");
?>
输出的结果类似于: 当前是2009年06月,第二季度
3.if结构与switch结构的区别
1)if结构适用于条件有一个或两个结果(true/false);
switch结构适用于条件有多个结果。
2)if结构的条件返回值只能为布尔型;
switch结构的条件返回值可以为任意标量类型。
3)if结构的相互嵌套,表明条件之间存在递进关系;
switch结构一般不发生嵌套。
二、循环结构
1、for循环结构
for(初始值 ;循环条件 ;步长值) 注:一定别忘记分号
{
执行代码
……
……
exit; (跳过)
continue;(继续)
}
说明:在循环时,以上的条件均可以以程序的变量加以控制.
实例1.
<?php
for($i = 1; $i <= 10; $i ++)
{
if($i < 3)
continue;
echo("<p>{$i}</p>\n");
}
?>
输出的结果为:
3
4
5
6
7
8
9
10
实例2.
从1相加到100
<?php
$sum = 0;
for($i = 0; $i <= 100; $i++)
{
$sum = $sum + $i;(可以简写为:$sum += $i;)
echo("<p>" . ($sum -$i) . "+ {$i} = {$sum}</p>\n");
}
?>
输出的结果为:
0+ 0 = 0
0+ 1 = 1
1+ 2 = 3
3+ 3 = 6
6+ 4 = 10
……
……
……
4753+ 98 = 4851
4851+ 99 = 4950
4950+ 100 = 5050
在此声明一下<p>、</p>和\n的意义
相信大家在XHTML中熟知<p>和</p>为段落的意思,同样在php中它还是分段的意思,是为了输出的结果便于看,而\n则是为了保护它的程序的一致性,这个写与不写客户是看不出来的,只有程序员才知道,一个好的编程者应该保持到源码和输出的结果一致。
实例3: 九九乘法表
<?php
for($i = 1; $i <=9; $i++)
{
echo("<p>");
for($n = 1; $n <= $i; $n++)
{
$times = $n * $i;
echo("{$n} × {$i} = {$times} ");
}
echo("</p>\n");
}
?>
输出的结果为:
1 × 1 = 1
1 × 2 = 2 2 × 2 = 4
1 × 3 = 3 2 × 3 = 6 3 × 3 = 9
1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16
1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25
1 × 6 = 6 2 × 6 = 12 3 × 6 = 18 4 × 6 = 24 5 × 6 = 30 6 × 6 = 36
1 × 7 = 7 2 × 7 = 14 3 × 7 = 21 4 × 7 = 28 5 × 7 = 35 6 × 7 = 42 7 × 7 = 49
1 × 8 = 8 2 × 8 = 16 3 × 8 = 24 4 × 8 = 32 5 × 8 = 40 6 × 8 = 48 7 × 8 = 56 8 × 8 = 64
1 × 9 = 9 2 × 9 = 18 3 × 9 = 27 4 × 9 = 36 5 × 9 = 45 6 × 9 = 54 7 × 9 = 63 8 × 9 = 72 9 × 9 = 81
2、while循环结构
while(条件)
{
执行代码
……
}
3、for结构与while结构的区别:
1)for结构主要用于已知次数的循环;
while结构用于次数不固定的循环。
2)for结构存在默认步长值;
while结构必须为人为赋予有效步长值。
3)for结构不会造成死循环;
while结构可能造成死循环。
本文出自 “赵庆贝” 博客,谢绝转载!