require "class.a.php";
require "class.b.php";
require "class.c.php";
class main{
function main(){
if(condition_is_met(){
$this->something = new A();
}else{
$this->something = new B();
}
}
}
如果該文件包含在與require_once健康檢查,而不是所有的時間?
PHP是否保留源文件的預編譯的版本緩存或者文件解析,並與每個請求編譯? – Tomalak
並使用[PSR-0文件命名約定](https://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1)最大限度地減少自動裝載機的數量(如果所有庫都使用PSR-0,則只有一個自動加載器) – arnaud576875
@Tomalak,這是操作碼緩存的主要目的(請參閱[APC](http://pecl.php.net/packages/APC))。沒有它們,PHP會在每個請求中再次編譯相同的文件。 – arnaud576875