php中的if-else与switch-case效率比较

最近在写代码时刚好遇到这样的情况,也听很多朋友在面试中,都会被问到这样的问题:if else与switch case效率哪个快?就给大家说说吧,说得不对,请指正哦,给出其中一部分代码:

唤醒疯子博客

<?php
/**
 * runtime()是用来获取执行耗时的
 * @return float 表示返回的是一个浮点型数
 * */

function runtime(){
	$_mtime=explode(' ', microtime());
	return $_mtime[1]+$_mtime[0];
}

$start_time = runtime();
//........省略了从接口获取的过程
$label = 8;
//if-else语句
if($label == 1){
	echo "我是机灵";
}elseif ($label ==2) {
    echo "我是连续";
}elseif ($label ==3) {
	echo "我是登山";
}elseif ($label ==4) {
	echo "我是时间";
}elseif ($label ==5) {
	echo "我是等级";
}elseif ($label ==6) {
	echo "我是心情";
}elseif ($label ==7) {
	echo "我是益智";
}elseif ($label ==8) {
	echo "我是指数";
}elseif ($label ==9) {
	echo "我是突出";
}elseif ($label ==10) {
	echo "我是职业";
}
//switch
switch ($label) {
                case '1':
                  echo "我是机灵";
                    break;
                case '2':
                  echo "我是连续";
                    break;
                case '3':
                  echo "我是登山";
                    break;
                case '4':
                  echo "我是时间";
                    break;
                case '5':
                  echo "我是等级";
                    break;
                case '6':
                  echo "我是心情";
                    break;
                case '7':
                  echo "我是益智";
                    break;
                case '8':
                  echo "我是指数";
                    break;
                case '9':
                  echo "我是突出";
                    break;
                case '10':
                  echo "我是职业";
                    break;
                default:
                    //没有数据就结束了
                    exit();
                    break;
            }
$end_time = runtime();
echo "</br>";
echo $end_time-$start_time;

结果是:尤其在大量的数据和多个条件下switch-case表现出来的效率要比if-else高很多。

注意到了没!!!

大量的数据和多个条件下

也就是说:

1、当只进行一次比较时,建议使用if,原因很简单,因为只进行一次比较时if与switch没有本质区别,而用if代码比较简洁。

2、当进行多次单纯的比较数字或字符时,建议使用switch,因为当进行N次比较,switch只取值一次,而if-else则取值1<=x<=N(x为实际次数)。

3、当遇到复合条件时,应该视情况而灵活运用if与switch。

评论

唤醒疯子博客
请先登录后发表评论
  • 最新评论
  • 总共1条评论
唤醒疯子博客

叨ba叨ba  2017-08-16 10:27:27

唤醒疯子博客听你这么一说,好像清晰了许多,哈哈哈哈

回复