1. 程式人生 > >PHP的名稱空間的實現

PHP的名稱空間的實現

PHP的名稱空間, 實現的還真是簡單.

當你有如下程式碼:

<?php
  namespace Yaf;
  class Application {
  }

其實就相當於, 你聲明瞭一個名字為A\B的類, 當然, 你不能直接這麼申明(只是不能在PHP指令碼中這麼申明).

而在使用過程中, 根據PHP手冊中名稱空間一節所述, 執行時刻, 無論你是使用use, 還是直接寫相對名字, 絕對名字, 最後去class表查詢的時候, 都是被轉換成了最終的類似上面的類名.

比如:

<?php
  use Yaf  as A;
  $a = new A\Application(); //轉換為了Yaf\Application

不能不說, PHP的這種名稱空間解決方案 ,是代價最小, 影響最小的解決方案.

對於擴充套件開發者來說, 這種影響更是微小, 你只需要在INIT_CLASS_ENTRY的時刻, 把原來的形如”Yaf_Application”變為”Yaf\\Application”, 就可以實現自己的名稱空間.