263企业邮箱—中国企业邮箱第一品牌

263企业邮箱申请热线: 800-820-1263
企业邮箱首页 | 产品优势 | 成功客户 | 服务说明 | 解决方案 | 产品价格 | 如何购买 | 功能演示 | 在线帮助
    

中小企业发展推动企业邮箱服务步...

组合拳威力初显 263企业邮箱...

263企业邮箱推出263G邮箱...

outlook错误(0x800...

南火科技深切慰问汶川地震灾区同...

企业邮箱运营商服务沪企屡出“绝...

超大邮箱空间

智能反垃圾系统

超大附件
南北电信互通保障
海外转发
服务品质保障

企业邮箱用户使用手册

企业邮箱用户使用手册PDF文件下载

企业邮箱管理员使用手册

企业邮箱服务品质保障协议(SLA)
Outlook Express 错误代码表
基本测试命令
退信的常见问题及解决方法
PHP手册
企业邮件监控跟踪方案
防范垃圾邮件解决方案
海外企业邮件发送方案
南北邮件问题解决方案
超大企业邮箱空间方案
超大附件发送解决方案
邮件查杀病毒解决方案
 

PHP 手册
章 16. 流程控制

switch

switch 语句和具有同样表达式的一系列的 IF 语句相似。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途。

注: 注意和其它语言不同,continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一个轮回,用 continue 2。

下面两个例子使用两种不同方法实现同样的事,一个用一系列的 if 语句,另一个用 switch 语句:

例子 16-1. switch 结构

<?php
if ($i == 0) {
echo "i equals 0";
} elseif ($i == 1) {
echo "i equals 1";
} elseif ($i == 2) {
echo "i equals 2";
}

switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>

例子 16-2. switch 结构可以用字符串

<?php
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
?>

为避免错误,理解 switch 是怎样执行的非常重要。switch 语句一行接一行地执行(实际上是语句接语句)。开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句为止。如果不在 case 的语句段最后写上 break 的话,PHP 将继续执行下一个 case 中的语句段。例如:

<?php
switch ($i) {
case 0:
echo "i equals 0";
case 1:
echo "i equals 1";
case 2:
echo "i equals 2";
}
?>

这里如果 $i 等于 0,PHP 将执行所有的 print 语句!如果 $i 等于 1,PHP 将执行后面两条 print 语句。只有当 $i 等于 2 时,才会得到“预期”的结果――只显示“i equals 2”。所以,别忘了 break 语句就很重要(即使在某些情况下故意想避免提供它们时)。

在 switch 语句中条件只求值一次并用来和每个 case 语句比较。在 elseif 语句中条件会再次求值。如果条件比一个简单的比较要复杂得多或者在一个很多次的循环中,那么用 switch 语句可能会快一些。

在一个 case 中的语句也可以为空,这样只不过将控制转移到了下一个 case 中的语句。

<?php
switch ($i) {
case 0:
case 1:
case 2:
echo "i is less than 3 but not negative";
break;
case 3:
echo "i is 3";
}
?>

一个 case 的特例是 default。它匹配了任何和其它 case 都不匹配的情况,并且应该是最后一条 case 语句。例如:

<?php
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
}
?>

case 表达式可以是任何求值为简单类型的表达式,即整型或浮点数以及字符串。不能用数组或对象,除非它们被解除引用成为简单类型。

switch 支持替代语法的流程控制。更多信息见流程控制的替代语法一节。

<?php
switch ($i):
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
endswitch;
?>

 

  

后退      起点      前进


关于我们 | 联系我们 | 如何交费 | 招聘信息 | 合作伙伴 | 友情链接 | 版权声明 | 隐私保护 | 新闻中心 | 网站地图 | 企业邮箱博客
263企业邮局—中国企业邮局第一品牌 Copyright© 1998-2006  263企业邮箱版权所有 All rights reserved.
电话: 021-51099455  800-820-1263 (上海) 传真: 021-51062789