4 回答

TA貢獻1818條經(jīng)驗 獲得超8個贊
列一下俺常用的避免require/include的方法。 使用__autoload php5可以使用__autoload來避免require,用的好的話,代碼里頭甚至看不到幾個require,實在是安逸啊。測試結(jié)果表明,使用__autoload之后的new Foo; 比require_once ‘foo.php’; new Foo; 大概要快3倍左右。 補充:為了避免autoload沖突,可以考慮使用spl_autoload_register(PHP 5 >= 5.1.2)來改變魔術(shù)函數(shù)__autoload的行為。 使用defined檢測是否載入過 在代碼開頭使用defined檢測是否定義過對應(yīng)的常量,如果有的話,直接return。

TA貢獻1943條經(jīng)驗 獲得超7個贊
1. require_once()和include_once()是 PHP 4.0.1pl2 中新加入的.(為了兼容肯定不能把include()和require()一下子就拋棄)
2.require_once()和include_once()需要額外的去查看系統(tǒng)是否已經(jīng)調(diào)用過這個文件. 因為它們在一個opcode緩存下的調(diào)用非常慢.所以效率上比其它兩個函數(shù)要差一些.(據(jù)說php5.2.*以后效率問題被解決)
3.php說不定以后就會把include()實現(xiàn)成include_once()的"名字連接",象implode()和join(),exit()和die()一樣...(這個是我瞎猜的....)

TA貢獻1836條經(jīng)驗 獲得超5個贊
在php中使用require_once/include_once雖然方便,但是代價昂貴,據(jù)測試數(shù)據(jù)來看,require_once比require慢3-4倍,所以在php開發(fā)中,我們應(yīng)該盡量使用require/include。
為了避免autoload沖突,可以考慮使用spl_autoload_register(PHP 5 >= 5.1.2)來改變魔術(shù)函數(shù)__autoload的行為。
使用defined檢測是否載入過
在代碼開頭使用defined檢測是否定義過對應(yīng)的常量,如果有的話,直接return。
- 4 回答
- 0 關(guān)注
- 1545 瀏覽
添加回答
舉報