我們都知道PHP用寫時(shí)復(fù)制來對(duì)變量復(fù)制做性能優(yōu)化, 而在以前的三元式中, 卻每次都會(huì)復(fù)制, 這在操作數(shù)是大數(shù)組的情況下, 會(huì)造成性能問題:
$a=range(1,1000);
$i=0;
$start=microtime(true);
while(++$i<1000){
$b=isset($a)?$a:NULL;
}
var_dump(microtime(true)-$start);
相比, 我們采用if-else來做同樣的功能:
$a=range(1,1000);
$i=0;
$start=microtime(true);
while(++$i<1000){
if(isset($a)){
$b=$a;
}else{
$b=NULL;
}
}
var_dump(microtime(true)-$start);
在PHP7 中
第一種 耗時(shí):double(0.010506153106689)
第二種 耗時(shí):double(0.00010108947753906)
第二種比第一種快 100倍