在写PHP代码时,遇到简单的判断之类的,总是喜欢用问号表达式而不是IF...ELSE...分支判断。
(图源 :pixabay)
今天突发奇想,问号表达式和IF...ELSE...到底谁的效率高呢?然后百度了一下,咦,竟然没人讨论这个问题,看来就我自己闲的难受。
既然闲的难受就写段简单的代码测试一下
<?
$loops = 100000;
$start=microtime(true);
for($i=0; $i<$loops; $i++)
{
($i>$i-1)?$j=0:$j=1;
($i<$i+1)?$k=0:$k=1;
($i>$i-1)?$j=0:$j=1;
($i<$i+1)?$k=0:$k=1;
}
echo round(microtime(true) - $start, 6), "\n";
$start = microtime(true);
for($i=0; $i<$loops; $i++)
{
if($i>$i-1) $j=0; else $j=1;
if($i<$i+1) $k=0; else $k=1;
if($i>$i-1) $j=0; else $j=1;
if($i<$i+1) $k=0; else $k=1;
}
echo round(microtime(true) - $start, 6), "\n";
?>
刷了几遍网页后,输出的结果大致都是类似如下情况
也就是说问号表达式要比IF...ELSE..慢上一倍左右,不过,讲真,运行10万轮,每轮还运行了四次,不过耗时接近0.04秒,也就是说其实这点效率差异根本是无关紧要的。
所以,用问号表达式还是IF...ELSE...并没有多大区别,浪费不了多少时间,倒是我闲的做这个测试,浪费了自己不少时间,够跑无数次问号表达式啦!
https://steemit.com/~witnesses type in
oflyhigh
and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!