首页 > php基础 > php中 if Else 与Switch 语句对比

php中 if Else 与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

如果当前日期是星期一,下面的代码将输出 "星期一快乐。",否则会输出 "天天快乐。":

<?php
$d=date("D"); //变量d赋值
if($d=="Mon"){
 echo "星期一快乐!";
}else{
 echo "天天快乐!";
}
?>

实例2

如果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";
}
?>

总结3点

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

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

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


本文地址:http://www.phprm.com/base/66434.html

转载随意,但请附上文章地址:-)

标签:none

发表留言