php中switch与ifelse的效率区别及适用情况分析

本文实例分析了php中switch与ifelse的效率区别及适用情况。分享给大家供大家参考。具体分析如下:

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

不管写什么语言的程序,一定会考虑到代码的运行效率问题。在查阅了一些资料后,switch与ifelse在不同的‘环境'下效率各有优胜。

1、当被判断的值是常量(固定不变的值)时,switch的运行效率比ifelse的运行效率高;

$changliang=3;   // 变判断的值为常量
switch($changliang){
  case 1:
    echo '常量值为1';
    break;   // 跳出循环
  case 2:
    echo '常量值为2';
    break;
  case 3:
    echo '常量值为3';
    break;
}

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

$a = $_GET['a']; // 通过get传值后接值; 被判断的值
if($a=1){
  echo '变量a的值为1';
}elseif($a=2){
  echo '变量a的值为2';
}elseif($a=3){
  echo '变量a的值为3';
}else{
  echo '变量a的值为不知道';
}

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • php 流程控制switch的简单实例

    switch允许对一个标量(表达式)的多个可能结果做选择. 语法: switch (expr) { case result1: statement1 break; case result2: statement2 break; -- default: statement } 系统计算expr的值,根据计算结果(result1.result2等)来选择下面对应执行语句,如果所有的case结果都不符合,则会执行default里的语句. 例子: <?php switch ($x) { case 0:

  • PHP中的switch语句的用法实例详解

    switch是一个开关语句,那么很多朋友都只知道简单的switch开关语句的用法了,下面一聚教程小编就为各位详细的介绍一下switch用法例子吧. 只所以称为"高级"用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实还是它的基础用法! switch 语句和具有同样表达式的一系列的 IF 语句相似.很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码.这正是 switch 语句的用途. 注意: 注意和其它语言不同,cont

  • php switch语句多个值匹配同一代码块应用示例

    先说说switch()语句的格式 switch(表达式){ case 匹配1: 当匹配1和表达式匹配成功执行的代码; break; case 匹配2: 当匹配2和表达式匹配成功执行的代码; break; default: 如果case语句没有与表达式成功所执行的代码; } 理解 switch 是怎样执行的非常重要.switch 语句一行接一行地执行(实际上是语句接语句).开始时没有代码被执行.仅当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句,直到 swit

  • php中switch语句用法详解

    本文介绍php中的switch语句的用法,它跟其他语句中的switch用法差不多的,但注意有有一个break语句. PHP中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 exe

  • php中switch与ifelse的效率区别及适用情况分析

    本文实例分析了php中switch与ifelse的效率区别及适用情况.分享给大家供大家参考.具体分析如下: PHP中的这两个方法都是用于判断值是否满足条件,如果满足/不满足做出不同行为动作. 不管写什么语言的程序,一定会考虑到代码的运行效率问题.在查阅了一些资料后,switch与ifelse在不同的'环境'下效率各有优胜. 1.当被判断的值是常量(固定不变的值)时,switch的运行效率比ifelse的运行效率高: $changliang=3; // 变判断的值为常量 switch($chang

  • 浅析PHP中的i++与++i的区别及效率

    先看看基本区别: i++ :先在i所在的表达式中使用i的当前值,后让i加1 ++i :让i先加1,然后在i所在的表达式中使用i的新值 看一些视频教程里面写for循环的时候都是写 ++i 而不是 i++,上网搜索了一下,原来有效率问题 ++i相当于下列代码 i += 1; return i; i++相当于下列代码 j = i; i += 1; return j; 当然如果编译器会将这些差别都优化掉,那么效率就都差不多了. 再给大家详细说下++i 与 i++ 的区别 1.++i 的用法(以 a=++

  • MySQL中distinct和group by去重效率区别浅析

    目录 一.distinct 二.group by 三.distinct 和 group by 比较 总结 一.distinct distinct的作用 在mysql中,distinct关键字的主要作用就是对数据库表中一个或者多个字段重复的数据进行过滤,只返回其中的一条数据给用户,distinct只可以在select中使用 distinct的原理 distinct进行去重的主要原理是通过先对要进行去重的数据进行分组操作,然后从分组后的每组数据中去一条返回给客户端,在这个分组的过程可能会出现两种不同

  • Java 中的vector和list的区别和使用实例详解

    要了解vector,list,deque.我们先来了解一下STL. STL是Standard Template Library的简称,中文名是标准模板库.从根本上说,STL是一些容器和算法的集合.STL可分为容器(containers).迭代器(iterators).空间配置器(allocator).配接器(adapters).算法(algorithms).仿函数(functors)六个部分.指针被封装成迭代器,这里vector,list就是所谓的容器. 我们常常在实现链表,栈,队列或者数组时,

  • 详解Java中字符流与字节流的区别

    本文为大家分析了Java中字符流与字节流的区别,供大家参考,具体内容如下 1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可以从中读入一个字节序列的对象被称为输入流:能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和Out

  • PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )

    PHP中有eAccelerator.memcached.xcache.APC 4个加速.缓存扩展,下面给大家介绍下其区别,一起看看吧! 折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有 eAccelerator.memcached.xcache.Alternative PHP Cache这几个缓存扩展,它们之间有什么区别?分别的作用又是什么?我们如何选择?这是本文给于大家的答案. 1.eAccelerator eAccelerato

  • Java中Switch用法代码示例

    一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),  在java1.7后支持了对string的判断 还有一点要注意的是:在java中如果switch的case语句中少写了break;这个关键字,在编译的时候并没有报错.但是在执行的时候会一直执行所有case条件下的语句并不是去判断,所以会一直执行直到遇到break关键字跳出或者一直执行到defaut语句. 还有就是如果

  • 详解Spring中使用@within与@target的区别

    项目里用到@within时,出现了一些问题,使用@target就可以解决,但又会出现一些新的问题,因此本文探讨了在spring中,使用@within和@target的一些区别. 背景 项目里有一个动态切换数据源的功能,我们是用切面来实现的,是基于注解来实现的,但是父类的方法是可以切换数据源的,如果有一个类直接继承这个类,调用这个子类时,这个子类是不能够切换数据源的,除非这个子类重写父类的方法. 模拟项目例子 注解定义: @Target({ElementType.METHOD, ElementTy

  • Java中的Gradle与Groovy的区别及存在的关系

    目录 一.Gradle构建的利与弊 二.Groovy的优点 三.依存关系 四.认识build.gradle 五.Gradlebuildscript 六.什么是闭包 七.Gradle只是闭包 八.探索Gradle依赖项配置 九.打包Gradle版本 十.任务 前言: 在Java项目中,有两个主要的构建系统:Gradle和Maven.构建系统主要管理潜在的复杂依赖关系并正确编译项目.还可以将已编译的项目以及所有资源和源文件打包到.war或.jar文件中.对于简单的构建,Maven和Gradle之间的

  • RxJava中map和flatMap的用法区别源码解析

    目录 前言: 作用 使用方法: map flatMap 源码分析 map flatMap 结语 前言: RxJava中提供了大量的操作符,这大大提高了了我们的开发效率.其中最基本的两个变换操作符就是map和flatMap.而其他变换操作符的原理基本与map类似. map和flatMap都是接受一个函数作为参数(Func1)并返回一个被观察者Observable Func1的< I,O >I,O模版分别为输入和输出值的类型,实现Func1的call方法对I类型进行处理后返回O类型数据,只是fla

随机推荐