我經常發現自己做這樣的事情:在PHP中,什麼是更高效?首先聲明並覆蓋或通過if/else聲明?
$add_class = '';
if($class){
$add_class = " abc ";
}
是更好地寫這樣的:
if($class){
$add_class = " abc ";
} else {
$add_class = '';
}
我經常發現自己做這樣的事情:在PHP中,什麼是更高效?首先聲明並覆蓋或通過if/else聲明?
$add_class = '';
if($class){
$add_class = " abc ";
}
是更好地寫這樣的:
if($class){
$add_class = " abc ";
} else {
$add_class = '';
}
中的差異這兩者很明顯雖然不是實質性的...只有當$ class變量更可能是真實的時候,在這種情況下首先分配變量將效率較低。
不行,這不是更好。
你以前的做法更加乾淨和安全,以免將來犯下錯誤。
例如:您忘記只使用一個else,而您決定只在其他地方使用else,否則當您需要該變量時,您的代碼將崩潰。
考慮到如果您沒有定義add_class
,PHP會拋出一個錯誤,您可能應該使用前者。
在性能方面(即使不是處理器會照顧):
//.000010013580322266 ms
$class = 1;
$add_class = '';
if($class){
$add_class = " abc ";
}
//.000010013580322266 ms
$class = 1;
if($class){
$add_class = " abc ";
} else {
$add_class = '';
}
還有第三種選擇,使用三元操作符(略更昂貴):
//.000010967254638672 ms
$class = 1;
$add_class = $class ? 'abc' : '';
微優化的另一種情況。順便說一句 - 最好不要使用雙引號和單引號。 – 2013-03-08 03:07:08
兩者之間的差異很明顯,但並不顯着...在這種情況下首先分配變量只會在$ class變量更可能是真實的情況下效率較低。 – zgr024 2013-03-08 03:11:19
**這種優化級別浪費您的時間。**花時間考慮人類閱讀的最清晰的內容,而不是想象如何節省納秒會在應用程序中造成一些不同。 – 2013-03-08 03:15:06