原文摘自:http://orangeholic.iteye.com/blog/1763937
1.用逗号连接echo字符串
- $name='orange';
- $address='BeiJing';
- echo 'Hi,'.$name.'! Welcome to '.$address;//慢
- echo 'Hi,',$name,'! Welcome to ',$address;//快,建议方式
2.使用require还是require_once
老问题了,Lerdof N年前就提出来了,建议用require,因为require_once发起少量的stat调用,我们可以通过ab来测试一下效率
#a.php文件
- require_once('ClassA.php');
- require_once('ClassB.php');
- require_once('ClassC.php');
-
echo 'end';
#b.php文件
- require('ClassA.php');
- require('ClassB.php');
- require('ClassC.php');
- echo 'end';
增加了近20的并发量!
3.提前计算循环长度
如下代码
- $items=array(0,1,2,3,4,5,6,7,8,9);
- for($i=0;$i<count($items);$i++)
- {
- $temp=$items[$i]*$items[$i];
- }
循环是如何执行的?
* $i初始化0,调用count($items)检测,平方;
* $i等于1,调用count($items)检测,平方;
* $i等于2,调用count($items)检测,平方;
* ...........................
count($items)执行了count($items)遍!所以我们提前计算循环长度,实验对比
#a.php文件
- $start=microtime(true);
- $items=array_fill(0,100000,'orange');
- for($i=0;$i<count($items);$i++)
- {
- $temp=$items[$i].$items[$i];
- }
- echo microtime(true)-$start;
执行结果:
- $start=microtime(true);
- $items=array_fill(0,100000,'orange');
- $count=count($items);
- for($i=0;$i<$count;$i++)
- {
- $temp=$items[$i].$items[$i];
- }
- echo microtime(true)-$start;