3 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用__autoload php5可以使用__autoload來避免require,用的好的話,代碼裡頭甚至看不到幾個(gè)require,實(shí)在是安逸啊。測試結(jié)果顯示,使用__autoload之後的new Foo; 比require_once 『foo.php』; new Foo; 大概要快3倍左右。
補(bǔ)充:為了避免autoload衝突,可以考慮使用spl_autoload_register(PHP 5 >= 5.1.2)來改變魔術(shù)函數(shù)__autoload的行為。
使用defined檢驗(yàn)是否載入過 在代碼開頭使用defined檢驗(yàn)是否定義過對(duì)應(yīng)的常量,如果有的話,直接return。
<?phpif(!defined('_MYCLASS_'))return;define('_MYCLASS_', 1);
class MyClass { ... }?>測試了一下,defined的效能也不是太好…
require前檢查 用class_exists或是function_exists檢查一下,確認(rèn)沒有載入過再出手,至少比require_once能快上3倍。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
include 包含不上是notice,不影響下面腳本執(zhí)行。
require 包含錯(cuò)誤是致命錯(cuò)誤,腳本終止。
一個(gè)頁面多次包含某文件會(huì)報(bào)錯(cuò),
require_once和include_once可以多次包含,不報(bào)錯(cuò)。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
a.php 文件 $db_server="localhost"; b.php 文件 require_once("a.php"); class MysqlConn { private $a; public function __construct($canshu) { $this->a=$canshu; //echo $this->a; } } $m=new MysqlConn($db_server); c.php文件 require_once("b.php"); echo $db_server;
- 3 回答
- 0 關(guān)注
- 573 瀏覽
添加回答
舉報(bào)