1
代碼示例1在加載類時,PHP的use語句會導致額外的工作嗎?
use Outline\Drawing;
$var = new Drawing();
代碼示例2
$var = new Outline\Drawing();
問:
確實PHP使硬件更加努力地工作(查找多個文件或文件做更多的處理)如果我使用示例1中的代碼?我相信有一些事情可以完成,即使它是在某些代碼的層次上,它們會計算出哪個use
行與哪個類匹配。我想找出究竟發生了什麼。
簡而言之:
- 工作了使用
use
語句,它被認爲是一類之間的連接時,是什麼PHP做什麼? - 當涉及到這兩個代碼示例時,PSR-0/PSR-4自動加載器是否會影響它們的工作方式?
你在這裏討論的是[標籤:微型優化]。除非你真的加載了數百萬個類,否則差異將會變得微不足道。 – GordonM
我主要擔心的是「如果文件系統上存在一個名爲Drawing.php的文件,PHP會首先嚐試查找,如果不是,那麼它會查找Outline \ Drawing.php」這樣的系統調用會導致一些嚴重的性能問題,所以我會想象別的事情正在發生。 – Dennis
儘管我同意這是微型優化,但AFAIK PHP加載類的方式是首先解析完整的名稱空間類名,然後嘗試加載它(如果它尚未加載)。您的代碼示例都將查找相同數量的文件,並且使用語句的額外處理量可以忽略不計。 – T0xicCode