phpif效率
‘壹’ 设计php程序,比较if与switch的运行效率
<?PHP
$num
=
rand(1,5);
echo
'$num
=
'.$num.'<br
/>';//显示随机数$num的值
$start
=
microtime(true);//获取执行if之前的时间
if($num
==
1)
{}else
if($num
==
2)
{}else
if($num
==
3)
{}else
if($num
==
4)
{}else{}
$end
=
microtime(true);//获取执行if之后的时间
echo
'if
:
'.($end-$start).'<br
/>';//显示执行if所用时间
$start
=
microtime(true);//获取执行switch之前的时间
switch($num)
{
case
1:break;
case
2:break;
case
3:break;
case
4:break;
case
5:break;
}
$end
=
microtime(true);//获取执行switch之后的时间
echo
'switch:
'.($end-$start).'<br
/>';//显示执行switch所用时间
?>
‘贰’ php IF函数的用法
在您编写代码时,经常会希望为不同的决定执行不同的动作。您可以在代码中使用条件语句来实现这一点。
在
PHP
中,我们可以使用以下条件语句:
1.if
语句 -
如果指定条件为真,则执行代码
2.if...else
语句 -
如果条件为
true,则执行代码;如果条件为
false,则执行另一端代码
3.if...elseif....else
语句 -
选择若干段代码块之一来执行
4.switch
语句 -
语句多个代码块之一来执行
举例:
1.
if (条件) {
当条件为 true 时执行的代码;
}2.
if (条件) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}3.
if (条件) {
条件为 true 时执行的代码;
} elseif (condition) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}4.
<?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";
}
?>
‘叁’ php 中 三元运算和 IF语句 运行速度
编译器的角度讲,二元运算速度比三元运算速度稍微快一点点,但是这个差距是完全可以忽略的。
三元运算对代码可读性的提升是非常明显的
刚才做了下测试
CPU: Core i5-2400 @3.1GHz
内存:4GB DDR3 1333
系统:Win7 64bit SP1 6.1.7601
200W次,速度差距不到1ms
所以说,完全不用考虑速度上的差距
为了提高代码可读性,能使用三元运算的时候就用三元运算
‘肆’ php if ... else ... 对程序效率的影响问题
效率没有差异,执行速度完全相同,因为你的例子只是ret返回,而且ret后面没有语句,事实上编译后的代码基本上是一样的。
如果不是简单的返回,而是复杂的调用,例如:
if ($flag) echo '执行成功,消耗时间'.date('i').'秒。';
else echo '执行失败,消耗时间'.date('i').'秒。';
//date('i')只是一个例子,实际上需要两个日期差才能计算时间。
这样的情况下,你例子的两种方法效率是差不多的,都比较差,用下面的方法更好:
echo '执行'.($flag?'成功':'失败').',消耗时间'.date('i').'秒。';
‘伍’ php if比起(flag)a:b哪个效率高
效率差异几乎忽略,能使用?:操作的尽量使用?:,一是因为阅读方便,二是理论上效率略高,例如:
if ($a) $b=1; else $b=2;
$b=$a?1:2;
‘陆’ 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程序设计有所帮助。
‘柒’ 设计php程序,比较if与switch的运行效率
<?PHP
$num = rand(1,5);
echo '$num = '.$num.'<br />';//显示随机数$num的值
$start = microtime(true);//获取执行if之前的时间
if($num == 1)
{}else if($num == 2)
{}else if($num == 3)
{}else if($num == 4)
{}else{}
$end = microtime(true);//获取执行if之后的时间
echo 'if : '.($end-$start).'<br />';//显示执行if所用时间
$start = microtime(true);//获取执行switch之前的时间
switch($num)
{
case 1:break;
case 2:break;
case 3:break;
case 4:break;
case 5:break;
}
$end = microtime(true);//获取执行switch之后的时间
echo 'switch: '.($end-$start).'<br />';//显示执行switch所用时间
?>
‘捌’ PHP if else 和 exit效率问题
if else 提升效率的方法就是分析具体的处理逻辑,把最常执行的条件放到前面,不常执行的条件放到后面,减少程序运行的步骤就可以啦
以下原则可以很好的帮到你
1加小括号
把可能出现的多个条件并到一个
if(($a > $b) || ($a < $c)){}
2改变表达式顺序
减少到达条件的步骤
3避免表达式叠加
避免多次判断条件,增加无谓的运行步骤