PHP use關鍵字概述

2021-09-06 17:07:10 字數 1700 閱讀 8858

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也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...