php中的use關鍵字的用法。
很多開源系統如oscommerce框架中,都會在其原始碼中找到use這個關鍵字,如oscommerce框架中就在index.php檔案中出現了這段原始碼:
use oscommerce\om\core\autoloader;
use oscommerce\om\core\oscom;
其實,php的use關鍵字是自php5.3以上版本引入的。它的作用是給乙個外部引用起別名。這是命名空間的乙個重要特性,它同基於unix的檔案系統的為檔案或目錄建立連線標誌相類似。
php命名空間支援三種別名方式(或者說引用):
1、為乙個類取別名
2、為乙個介面取別名
3、為乙個命名空間取別名
這三種方式都是用 use 關鍵字來完成。下面是三種別名的分別舉例:
//example #1 importing/aliasing with the use operator
<?php
namespacefoo;
usemy\full\classnameasanother;
//thisisthesameasusemy\full\nsnameasnsname
usemy\full\nsname;
//importingaglobalclass
usearrayobject;
$obj=newnamespace\another;//instantiatesobjectofclassfoo\another
$obj=newanother;//instantiatesobjectofclassmy\full\classname
nsname\subns\func();//callsfunctionmy\full\nsname\subns\func
$a=newarrayobject(array(1));//instantiatesobjectofclassarrayobject
//withoutthe"usearrayobject"wewouldinstantiateanobjectofclassfoo\arrayobject
?>
注意的一點是,對於已命名的名字,全稱就包含了分隔符,比如 foo\bar,而不能用foobar,而「\foo\bar」這個頭部的"\"是沒必要的,也不建議這樣寫。引入名必須是全稱,並且跟當前命名空間沒有程式上的關聯。(www.jbxue.com 指令碼學堂)
php也可以在同一行上申明多個,等同於上面的寫法
<?php
usemy\full\classnameasanother,my\full\nsname;
$obj=newanother;//instantiatesobjectofclassmy\full\classname
nsname\subns\func();//callsfunctionmy\full\nsname\subns\func
?>
還有值得一說的是,引入是在編譯時執行的,因此,別名不會影響動態類,例如:
<?php
usemy\full\classnameasanother,my\full\nsname;
$obj=newanother;//instantiatesobjectofclassmy\full\classname
$a = 'another';
$obj = new $a; // instantiates object of class another
?>
php use 關鍵字用法詳解
目前 我總結的 use 關鍵字的用法有三種 1 宣告使用某個命名空間中的類 在命名空間中的用法網上資料比較多,手冊上講解的也詳細這裡就不贅述了 2.用在匿名函式之後給匿名函式增加引數 主要講解use在匿名函式中的用法,use用在匿名函式中可以達到在函式外部使用函式內部變數的效果,改變變數的作用域。輸...
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...