PHP的switch判断语句的“高级”用法详解,switch详解

只所以称为“高级”用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实还是它的基础用法!

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

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

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

Example #1 switch 结构

代码如下:

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;

}

?>

Example #2 switch 结构可以用字符串

代码如下:

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 的程序段结束(如 return 语句)或者遇到第一个 break 语句为止。如果不在 case 的语句段最后写上 break 的话,PHP 将继续执行下一个 case 中的语句段。例如:

代码如下:

switch ($i)

{

case 0:

echo "i equals 0";

case 1:

echo "i equals 1";

case 2:

echo "i equals 2";

}

?>

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

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

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

代码如下:

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 都不匹配的情况。例如:

代码如下:

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

【实战】 根据上面的知识点,编写这么一个函数:计算容量值实际代表的字节数

代码如下:

/**

* 返回字节数

*

* @param string $val 如 400M

*/

function return_bytes($val = '')

{

$val = trim($val);

$last = strtolower($val{strlen($val)-1});

switch ($last)

{

case 'g':

$val *= 1024;

case 'm':

$val *= 1024;

case 'k':

$val *= 1024;

}

return $val;

}

$memorylimit = ini_get('memory_limit');

echo $memorylimit, '

';

echo return_bytes($memorylimit);

输出:

代码如下:

400M

419430400

特别说明:$val = 400M时,case 'm' 被命中,其下的 $val *= 1024; 被执行,但因为没有 break 语言,所以会继续命中 case 'k',并执行其下的 $val *= 1024;语句,so,总体上相当于执行了 400 * 1024 * 1024 。

php怎将判断后的值提交?我是用switch循环语句进行判断的,怎将判断后的新值再次提交到新的页面

存入session,另一个页面取出session就可以了。

switch ($a) {

case "1" :

echo "A" ;

if(!isset($_SESSION)){

session_start();

}

$_SESSION['a']='A';

break;

另外一个页面:

if(!isset($_SESSION)){

session_start();

}

$a=$_SESSION['a'];

php switch语句根据天数判断

var iMonth=5;

var quarter=""

switch(iMonth){

case 1:;

case 2:;

case 3:;

quarter="chunji";

break;

case 4:;

case 5:;

case 6:;

quarter="xiaji";

break;

case 7:;

case 8:;

case 9:;

quarter="qiuji";

break;

case 10:;

case 11:;

case 12:;

quarter="dongji";

break;

}

document.write(quarter)

http://www.bkjia.com/PHPjc/887750.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/887750.htmlTechArticlePHP的switch判断语句的“高级”用法详解,switch详解 只所以称为“高级”用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

php switch case 判断语句,PHP的switch判断语句的“高级”用法详解,switch详解_PHP教程...相关推荐

  1. 比Switch...Case更加优雅的多条件判断写法

    前言 前几天,本人负责编写网站上线的环境判断功能,其中涉及到大量多条件判断的code.对于多条件判断写法,大部分程序员都是采用if...else if...else或者switch...case的写法 ...

  2. php判断明天是不是星期六,PHP获取时间排除周六、周日的两个方法_PHP教程

    今天和大家分享一个获取10天后的一个时间戳的函数,程序的关键是,他可以不去算周六日哦.如果你有别的需求.可以改成N天的哦.反正就不算周六日.哈哈. //方法一: =-1 and $num<=3) ...

  3. 工厂模式之消除switch/case语句

    2019独角兽企业重金招聘Python工程师标准>>> 我们在平时的编码中,我们经常会遇到这样的情况: 使用过多的switch/case 或者 if else 语句,非常不爽,也违背 ...

  4. 有了 elseif 为什么还要 switch case

    引出 你有没有想过既然有了if elseif, 为什么还要设计一个switch case的语法出来呢? 按理说, 一个语言的设计角度来说, 关键词越少越好吧, 而且多出来一种选择分支也没有看出太大用处 ...

  5. 【前端】【JavaScript案例】之用条件语句实现输入年份判断生肖

    已知,公元后生肖年的计算方法: 年份除以12,取所得余数,对照下表查看生肖: 0猴,1鸡,2狗,3猪,4鼠,5牛,6虎,7兔,8龙,9蛇,10马,11羊 方法一 else if : var year1 ...

  6. c语言while语句写法,C语言while语句

    在C语言中,共有三大常用的程序结构: 顺序结构:代码从前往后执行,没有任何"拐弯抹角": 选择结构:也叫分支结构,重点要掌握 if else.switch 以及条件运算符: 循环结 ...

  7. C++用unordered_map查表代替if else/switch case多判断语句

    一.引言 在C++中我们写判断逻辑一般会用if else或switch case语句,比如以下例子: #include <iostream>using namespace std;clas ...

  8. php case 多个条件判断语句,PHP switch case语句

    PHP 中的条件控制语句有两个,一个是 if else 语句,另一个是 switch case 语句.上节讲解了 if else,本节接着讲解 switch case 语句. switch 语句类似具 ...

  9. c#switch语句判断成绩_Go的条件判断语句

    现实时间中,我们如果想去购物,可以选择网上或者线下去购物,甚至说,要购买的物品都有许多选择,选价格便宜的,选质量好的,选不用运费等等 那么在计算机语言中,我们要怎么实现现实中,这些选择呢? Go语言支 ...

最新文章

  1. JSON反序列的问题原因查找
  2. 日常生活 -- 感悟
  3. Quartus II11.0安装教程
  4. 【linux高级程序设计】(第十二章)Linux多线程编程 4
  5. android 不可点击状态,Android系统.如何使用setClickable同时设置所有按钮可点击或不可点击?...
  6. 利用JSP编写程序初步
  7. Java的@Serial批注
  8. xwpftablecell设置字体样式_HTML的文字样式
  9. 《ArcGIS Runtime SDK for Android开发笔记》——问题集:.geodatabase创建,创建时内容缺失问题总结...
  10. 【Elasticsearch】 Elasticsearch Suggester 自动纠错 详解
  11. VirtualBox安装Mac OS 10.11——虚拟机安装黑苹果
  12. 最薄翻转笔记本 联想Yoga13-IFI 6700
  13. 360极速浏览器调用selenium
  14. 配置fly.js请求
  15. 微信小程序 MinUI 组件库系列之 price 价格组件
  16. 用 Python 绘制 XMind 思维导图
  17. Java new Date() 获取的时间不正确 【已解决】
  18. Linux之系统安装读书笔记
  19. 解决「问题」,不要解决问题
  20. 自媒体人必备的3款宝藏工具,编辑、剪辑、配音软件都全了

热门文章

  1. MySQL连接方式:长连接或者短连接
  2. 初步认识Volatile-CPU高速缓存
  3. Redis中的淘汰策略
  4. OAuth2.0授权流程分析
  5. 命令提示符_基本介绍
  6. springboot属性注入
  7. 解决2次查询User的问题(ThreadLocal)
  8. AJAX框架眼镜店美瞳,PS完成对照片中人物的美瞳效果
  9. qt oracle bindvalue,Qt Sql bindValue与%
  10. Oracle synonym 同义词