(php 5 >= 5.3.0, php 7)
允許通過別名引用或匯入外部的完全限定名稱,是命名空間的乙個重要特徵。這有點類似於在類 unix 檔案系統中可以建立對其它的檔案或目錄的符號連線。
所有支援命名空間的php版本支援三種別名或匯入方式:為類名稱使用別名、為介面使用別名或為命名空間名稱使用別名。php 5.6開始允許匯入函式或常量或者為它們設定別名。
在php中,別名是通過操作符 use 來實現的. 下面是乙個使用所有可能的五種匯入方式的例子:
example #1 使用use操作符匯入/使用別名
<?php
namespace foo;
use my\full\classname as another;
// 下面的例子與 use my\full\nsname as nsname 相同
use my\full\nsname;
// 匯入乙個全域性類
use arrayobject;
// importing a function (php 5.6+)
use function my\full\functionname;
// aliasing a function (php 5.6+)
use function my\full\functionname as func;
// importing a constant (php 5.6+)
use const my\full\constant;
$obj = new namespace\another; // 例項化 foo\another 物件
$obj = new another; // 例項化 my\full\classname 物件
nsname\subns\func(); // 呼叫函式 my\full\nsname\subns\func
$a = new arrayobject(array(1)); // 例項化 arrayobject 物件
// 如果不使用 "use \arrayobject" ,則例項化乙個 foo\arrayobject 物件
func(); // calls function my\full\functionname
echo constant; // echoes the value of my\full\constant
?>
注意對命名空間中的名稱(包含命名空間分隔符的完全限定名稱如
foo\bar
以及相對的不包含命名空間分隔符的全域性名稱如
foobar
)來說,前導的反斜槓是不必要的也不推薦的,因為匯入的名稱必須是完全限定的,不會根據當前的命名空間作相對解析。
為了簡化操作,php還支援在一行中使用多個use語句
example #2 通過use操作符匯入/使用別名,一行中包含多個use語句
<?php
use my\full\classname as another, my\full\nsname;
$obj = new another; // 例項化 my\full\classname 物件
nsname\subns\func(); // 呼叫函式 my\full\nsname\subns\func
?>
匯入操作是在編譯執行的,但動態的類名稱、函式名稱或常量名稱則不是。
example #3 匯入和動態名稱
<?php
use my\
full
\classname
as another
, my
\full
\nsname
;$obj
= new
another
; // 例項化乙個 my\full\classname 物件
$a =
'another'
;$obj
= new
$a;
// 實際化乙個 another 物件
?>
另外,匯入操作只影響非限定名稱和限定名稱。完全限定名稱由於是確定的,故不受匯入的影響。
example #4 匯入和完全限定名稱
<?php
use my\full\classname as another, my\full\nsname;
$obj = new another; // instantiates object of class my\full\classname
$obj = new \another; // instantiates object of class another
$obj = new another\thing; // instantiates object of class my\full\classname\thing
$obj = new \another\thing; // instantiates object of class another\thing
?>
php使用命名空間 別名 匯入
php 5 5.3.0 允許通過別名引用或匯入外部的完全限定名稱,是命名空間的乙個重要特徵。這有點類似於在類 unix 檔案系統中可以建立對其它的檔案或目錄的符號連線。所有支援命名空間的php版本支援三種別名或匯入方式 為類名稱使用別名 為介面使用別名或為命名空間名稱使用別名。php 5.6開始允許...
PHP命名空間和別名 匯入(摘要)
支援命名空間,php版本需要 5.3.0。從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案foo.txt 可以同時在目錄 home greg 和 home oth...
Resharper 設定引用命名空間別名
設定resharper 下圖中標記2的作用 如果勾選了,則using 會放到namespace 裡面,namespace wcf.ef.entity using system.servicemodel 下圖標記3如果勾選了,如果兩個不同命名空間下都有類person 比如 wcf.ef.entity....