日期:2014-05-17 浏览次数:20564 次
这里说一些代码的执行情况,虽然php执行起来很快,但是蚊子虽小,总还是肉吧~
?
下面是一些代码的执行时间。
?
//以下程式执行次数 $_i =1000000;?
下面我们来看下for循环
?
/** * 这就是以前经常写的循环和判断 * for(i=0;i<5;i++) * if (0 < 1) */ $_val = 1; for($_j=0;$_j<$_i;$_j++){ if (0 < $_val) { } } /** * 以下是执行时间 * 0.106183052063 * 0.105647087097 * 0.105874061584 * 0.117154121399 */ /** * 接下来看下更改后的 */ $_val = 1; for($_i;$_i;$_i--){ if (0 < $_val) { } } /** * 执行时间 * 0.0908319950104 * 0.0884439945221 * 0.0853419303894 * 0.0844340324402 */
?同样是循环($_i)次,而下面的却比上面的少花费0.01~0.02秒。原因是每次不用去判断$_i,因为当$_i=0的时后,判断就为false了。
?
所以我们的if判断也可以这样写
$_val = 1; if ($_val) { }
?只要是数字都是ture,0就是false啦
下面这个是很容易犯的错误,在循环中声明变量,我们来看下执行时间
$_val = 1; for($_i;$_i;$_i--){ if ($_val) { } } /** * 执行时间 * 0.100801944733 * 0.0974791049957 * 0.0993800163269 * 0.112987041473 */ //把变量放在循环中 for($_i;$_i;$_i--){ $_val = 1; if ($_val) { } } /** * 执行时间 * 0.133583068848 * 0.117377996445 * 0.116209983826 * 0.12203502655 */
?上面的代码可以看出差距了吧
判断或者的情况
$_val = 3; for($_i;$_i;$_i--) { if (3 == $_val || 4 == $_val || 5 == $_val) { } } /** * 执行时间 * 0.11983704567 * 0.12117600441 * 0.129379987717 * 0.131067991257 */ $_val = 5; for($_i;$_i;$_i--) { if (3 == $_val || 4 == $_val || 5 == $_val) { } } /** * 执行时间 * 0.27806186676 * 0.316290855408 * 0.259559869766 * 0.277565956116 */ //用php自带的函数 $_val = 5; for($_i;$_i;$_i--) { if (in_array($_val,array(3,4,5))) { } } /** * 1.13307905197 * 1.12578582764 * 1.14648389816 */
?有php函数就用php函数吧,你会发现php函数简单好用。
还有一个查询的
//比如查詢統計的時候,查看該會員某些條件下是否有po過文章 SELECT id FROM post WHRE user_id='{$_user_id}' AND ...... //這樣寫沒錯啦,就是效率很慢,其實就是查詢是否有該數據,可以在後面添加一限制條數 LIMIT 1 SELECT id FROM post WHRE user_id='{$_user_id}' AND ...... LIMIT 1?
希望以上写的对大家有所帮助。
?