`
txf2004
  • 浏览: 6869943 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan


在网上看到一篇文章,是说语法的
我们在写程序的时候都习惯if ($a == 1) ,然后wordpress里面里面是if(1 == $a)
那篇文章作者说后者比前者效率高三倍...这个我一会儿再试
评论中有些网友说后者是为了避免逻辑错误.
比如,两个等号少写一个,后者就会报错,因为1是不可以被赋值的.前者就不会报错.
还有人说三个等号效率要高于两个的.
关于效率我来测试一下
利用我原来写过的一篇文章里的类.
<!-- 类文件 -->
<?php
/**
* @name test.php
* @date Thu Jan 03 22:51:06 CST 2008
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*//**
* Test a program how long it do
* 注意:使用时请循环多次,否则看不出效果
* @package
* @version 1.0
*/
class TestTime
{
private $beginTime = 0; //开始时间
private $endTime = 0; //结束时间
public function begin()
{
$this->beginTime = microtime(true);
}
public function end()
{
$this->endTime = microtime(true);
}
public function keepTime()
{
return $this->endTime-$this->beginTime;
}
}
$a = 1;
$TestTime1 = new TestTime();
$TestTime1->begin();
for ($i = 0; $i<1000000; $i++) {
if (1==$a) {
}
}
$TestTime1->end();
echo "1==\$a : ".$TestTime1->keepTime();
$TestTime2 = new TestTime();
$TestTime2->begin();
for ($i = 0; $i<1000000; $i++) {
if ($a==1) {
}
}
$TestTime2->end();
echo "<br />\$a==1 : ".$TestTime2->keepTime();
$TestTime3 = new TestTime();
$TestTime3->begin();
for ($i = 0; $i<1000000; $i++) {
if ($a===1) {
}
}
$TestTime3->end();
echo "<br />\$a===1: ".$TestTime3->keepTime();
$TestTime4 = new TestTime();
$TestTime4->begin();
for ($i = 0; $i<1000000; $i++) {
if (1===$a) {
}
}
$TestTime4->end();
echo "<br />1===\$a: ".$TestTime4->keepTime();
?>
<!--运行1000000次的结果,可以看出来三个等号效率高于两个,写前面写后面效率相同
1==$a : 0.22159481048584
$a==1 : 0.22365593910217
$a===1: 0.18903613090515
1===$a: 0.18533182144165
-->
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics