1. 程式人生 > >php裡use關鍵字與class_alias的作用域區別

php裡use關鍵字與class_alias的作用域區別

use可以用在名稱空間下,也可以不用再名稱空間下,他在兩者中的作用是一致的,都是在編譯的時候執行,不真正的載入類,因為是編譯的時候執行,所以只能在全域性環境使用,及不能使用在方法內部,條件判斷內部。

引入類的時候最好使用as來定義別名。通過use定義的別名類在get_declare_class函式裡沒有。

class_alias可以用在名稱空間下,也可以不用再名稱空間下,在名稱空間下的時候起的別名收到名稱空間的限制,即使被自動載入,但是你使用的類不是你剛才載入的類,因為兩者名稱空間不同。他是在指令碼執行的時候才執行的,所以可以在方法內部,或者條件判斷內部使用。通過class_alias定義的別名類在get_declare_class函式裡會有。

總結下就是使用名稱空間類檔案的多使用use來引入,單獨的非名稱空間,非類檔案可以使用絕對名稱空間載入類,或者使用class_alias來起別名來引入。要使用條件判斷並動態繼承的只能使用class_alias來實現。