加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中 if Else 及Switch 语句对比

发布时间:2022-06-24 12:06:14 所属栏目:PHP教程 来源:互联网
导读:在php中if Else 与Switch都是条件判断语句了,那么很多的新学php的朋友搞不清楚php中 if Else 与Switch区别在哪里,下面本文就重点介绍一下. 在网上找到一句:switch比较if具有速度优势,一个是采取转移地址列表的方法;还有就是switch一般在松散的情况下也多不采
  在php中if Else 与Switch都是条件判断语句了,那么很多的新学php的朋友搞不清楚php中 if Else 与Switch区别在哪里,下面本文就重点介绍一下.
 
  在网上找到一句:switch比较if具有速度优势,一个是采取转移地址列表的方法;还有就是switch一般在松散的情况下也多不采取"比较-转移 "的方法,而是用dec(sub)-jz的指令对,后者不仅是指令的长度变短了,速度上也有优势.
 
  下面我们来验证一下吧:
 
  If…Else 语句
 
  如果您希望在某个条件成立时执行一些代码,在条件不成立时执行另一些代码,请使用 if….else 语句.
 
  语法,代码如下:
 
  if (condition) //设置条件
    code to be executed if condition is true; //如果条件为真的代码被执行;
  else
    code to be executed if condition is false;  //如果条件为假,代码被执行
  
       实例1,如果d等于1时输出“数字1”,否则输出“数字不是1”,代码如下:
 
  <?php
  $d=2; //变量d赋值
  if($d==1){
   echo "数字1"; //变量d等于1时输出的值
  }else{
   echo "数字不是1"; //不等于1时输出的值
  }
  ?>
  Switch 语句
 
  语法,代码如下:
 
  switch (expression)
  {
  case label1:
    code to be executed if expression = label1;
    break;   
  case label2:
    code to be executed if expression = label2;
    break;
  default:
    code to be executed
    if expression is different  
    from both label1 and label2;
  }
  实例,工作原理:
 
  对表达式(通常是变量)进行一次计算,把表达式的值与结构中 case 的值进行比较,如果存在匹配,则执行与 case 关联的代码,代码执行后,break 语句阻止代码跳入下一个 case 中继续执行,如果没有 case 为真,则使用 default 语句,代码如下:
 
  <?php
  switch ($x)
  {
  case 1:
    echo "Number 1";
    break;
  case 2:
    echo "Number 2";
    break;
  case 3:
    echo "Number 3";
    break;
  default:
    echo "No number between 1 and 3";
    //开源代码phpfensi.com
  }
  ?>

      实例2,如果当前日期是星期一,下面的代码将输出 “星期一快乐”,否则会输出 “天天快乐”,代码如下:
 
  <?php
  $d=date("D"); //变量d赋值
  if($d=="Mon"){
   echo "星期一快乐!";
  }else{
   echo "天天快乐!";
  }
  ?>

  总结3点:
 
  1.PHP中有两个方法都是用于判断值是否满足条件,如果满足/不满足做出不同行为动作.
 
  2.switch中的步长越短,效率越高,而if else 则更灵活,适合不只一个变量的比较.
 
  3.当被判断值为变量,ifelse的运行效率高于switch,ifelse贯彻一判到底的方针,会从第一个条件开始判断,直到最后一个else,所以学会使用switch有好处.
 
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!