网站地图    收藏   

主页 > php专栏 > 流程控制语句 >

php中 if Else 与Switch 语句对比

来源:未知    时间:2014-11-25 22:36 作者:xxadmin 阅读:

[导读] 在php中if Else 与Switch都是条件判断语句了,那么很多的新学php的朋友搞不清楚php中 if Else 与Switch区别在哪里,下面本文就重点介绍一下. 在网上找到一句:switch比较if具有速度优势,一个是采取...

在php中if Else 与Switch都是条件判断语句了,那么很多的新学php的朋友搞不清楚php中 if Else 与Switch区别在哪里,下面本文就重点介绍一下.

在网上找到一句:switch比较if具有速度优势,一个是采取转移地址列表的方法;还有就是switch一般在松散的情况下也多不采取"比较-转移 "的方法,而是用dec(sub)-jz的指令对,后者不仅是指令的长度变短了,速度上也有优势.

下面我们来验证一下吧:

If…Else 语句

如果您希望在某个条件成立时执行一些代码,在条件不成立时执行另一些代码,请使用 if….else 语句.

语法,代码如下:

  1. if (condition) //设置条件 
  2.   code to be executed if condition is true; //如果条件为真的代码被执行; 
  3. else 
  4.   code to be executed if condition is false;  //如果条件为假,代码被执行 

实例1,如果当前日期是星期一,下面的代码将输出 “星期一快乐”,否则会输出 “天天快乐”,代码如下:

  1. <?php 
  2. $d=date("D"); //变量d赋值 
  3. if($d=="Mon"){ 
  4.  echo "星期一快乐!"
  5. }else
  6.  echo "天天快乐!"
  7. ?> 

实例2,如果d等于1时输出“数字1”,否则输出“数字不是1”,代码如下:

  1. <?php 
  2. $d=2; //变量d赋值 
  3. if($d==1){ 
  4.  echo "数字1"//变量d等于1时输出的值 
  5. }else
  6.  echo "数字不是1"//不等于1时输出的值 
  7. ?> 

Switch 语句

语法,代码如下:

  1. switch (expression) 
  2. case label1: 
  3.   code to be executed if expression = label1; 
  4.   break;   
  5. case label2: 
  6.   code to be executed if expression = label2; 
  7.   break
  8. default
  9.   code to be executed 
  10.   if expression is different  
  11.   from both label1 and label2; 

实例,工作原理:

对表达式(通常是变量)进行一次计算,把表达式的值与结构中 case 的值进行比较,如果存在匹配,则执行与 case 关联的代码,代码执行后,break 语句阻止代码跳入下一个 case 中继续执行,如果没有 case 为真,则使用 default 语句,代码如下:

  1. <?php 
  2. switch ($x
  3. case 1: 
  4.   echo "Number 1"
  5.   break
  6. case 2: 
  7.   echo "Number 2"
  8.   break
  9. case 3: 
  10.   echo "Number 3"
  11.   break
  12. default
  13.   echo "No number between 1 and 3"
  14.   //开源代码phpfensi.com 
  15. ?> 

总结3点:

1.PHP中有两个方法都是用于判断值是否满足条件,如果满足/不满足做出不同行为动作.

2.switch中的步长越短,效率越高,而if else 则更灵活,适合不只一个变量的比较.

3.当被判断值为变量,ifelse的运行效率高于switch,ifelse贯彻一判到底的方针,会从第一个条件开始判断,直到最后一个else,所以学会使用switch有好处.

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论