繼續說說php的幾個編碼優化
[b]1.用逗號連線echo字串[/b]
$name='orange';
$address='beijing';
echo 'hi,'.$name.'! welcome to '.$address;//慢
echo 'hi,',$name,'! welcome to ',$address;//快,建議方式
原因可以檢視兩者的opcode,用逗號的方式和用點號方式的opcode如下
[img]
[b]2.使用require還是require_once[/b]
老問題了,lerdof n年前就提出來了,建議用require,因為require_once發起少量的stat呼叫,我們可以通過ab來測試一下效率
#a.php檔案
require_once('classa.php');
require_once('classb.php');
require_once('classc.php');
echo 'end';
測試ab -c 10 -n 10000 http://localhost/orange/a.php 同時10個請求共請求10000次,結果如下:
[img]
#b.php檔案
require('classa.php');
require('classb.php');
require('classc.php');
echo 'end';
同樣測試測試ab -c 10 -n 10000 http://localhost/orange/b.php 同時10個請求共請求10000次,結果如下:
[img]
增加了近20的併發量!
[b]3.提前計算迴圈長度[/b]
如下**
$items=array(0,1,2,3,4,5,6,7,8,9);
for($i=0;$iage = $age;
}public function getage()
public function setname($name)
public function getname()
}$student=new student();
$start=microtime(true);
for($i=0;$i<100000;$i++)
echo microtime(true)-$start;
執行時間
[img]
#b.php檔案
/**
* 屬性public,直接賦值屬性
*/class student
$student=new student();
$start=microtime(true);
for($i=0;$i<100000;$i++)
echo microtime(true)-$start;
[img]
效率提公升至3000%..............................
關於編碼的若干最佳實踐
昨天 xx面試時,一道這樣的問題難住了我,就是 在這麼多年的編碼中,說說自己的最佳實踐。當時懵掉了,雖然看過很多敏捷開發 清潔之道 大全這些關於最佳實踐的書,但卻一條也說不出來。趁現在有時間,想想這個問題,總結一下自己的 最佳實踐。一致的 格式。形成自己的工具類。開發時,為了減少 量,多使用第三方的...
PHP加密最佳實踐
加密總是與安全密不可分,而每個phper都必須將應用安全作為必要的設計思路融入 中,以下是一些最佳實踐的建議。不要再使用md5,不要使用sha1,基本上已經沒有破解難度了。請使用password hash來雜湊密碼 php版本大於等於5.5,小於5.5請使用password compat庫 由於pa...
安全編碼最佳實踐 PHP及程式語言安全
企業應該避免使用php開發應用嗎?一些人認為,比起其它選擇,php太不安全了。whitehat security 白帽安全 公司最近發布了研究,他們使用自動化的工具檢視1700個web站點,看看安全bug的數量和建立站點使用的程式語言之間是否有任何關聯。總體的結論是,沒有一種語言是 最安全的 研究表...