PHP學習筆記4 命名空間

2021-09-29 04:55:07 字數 4454 閱讀 2039

定義多個命名空間

使用命名空間

namespace關鍵字和魔術常量__namespace__

命名空間的別名/匯入

命名空間在專案中的使用

//宣告乙個命名空間的語法格式

namespace

spacename;/*

這裡的**都是空間中的**;

*/

語法說明:

(1)namespace 是宣告空間的關鍵字,不區分大小寫

(2)spacename 是定義的空間名稱,命名方式與類名相同

(3)所有**都可以存在與空間中

(4)只有類、函式、常量**會受到空間影響

**例子:

namespace.php

<?php

//宣告乙個命名空間

namespace

;//(1)定義乙個學生類

class

student";

}}//(2)定義乙個函式

function

showinfo()

//(3)定義乙個常量

const

db_host

="localhost"

;//(4)定義乙個變數$a=

1000

;

<?php

//宣告頁面字符集

header

("content-type:text/html;charset=utf-8");

//(1)包含檔案

require_once

("./namespace.php");

//(2)建立學生類物件

$obj

=new()

;//(3)呼叫showinfo()函式()

;echo""

;echo""

.$a;

描述

資料夾可以有子目錄的情況,命名空間也有子空間情況。

**例子:

namespace02.php

<?php

//宣告乙個命名空間

namespace

;//(1)定義乙個學生類

class

student";

}}//(2)定義乙個函式

function

showinfo()

//(3)定義乙個常量

const

db_host

="localhost"

;//(4)定義乙個變數$a=

1000

;

<?php

//宣告頁面字符集

header

("content-type:text/html;charset=utf-8");

//(1)包含檔案

require_once

("./namespace02.php");

//(2)建立學生類物件

$obj

=new()

;//(3)呼叫showinfo()函式()

;echo""

;echo""

.$a;

建議:乙個檔案不要定義多個空間。

1. 簡單組合法

**例子:

namespace03.php

<?php

//宣告第1個命名空間

namespace

;//定義乙個學生類

class

student";

}}//宣告第2個命名空間

namespace

;//定義乙個學生類

class

student";

}}

<?php

//宣告頁面字符集

header

("content-type:text/html;charset=utf-8");

//(1)包含檔案

require_once

("./namespace03.php");

//(2)建立學生類物件

$obj1

=new()

;$obj2

=new()

;

2.大括號語法
<?php

//宣告第1個命名空間

namespace";

}}}//宣告第2個命名空間

namespace";

}}}

匿名空間

如果乙個檔案用大括號語法定義多個命名空間,如果要寫全域性**,還不想把全域性**加到某個命名空間中,該怎麼寫?

namespace.php

<?php

//宣告第1個命名空間

namespace";

}}}//宣告第2個命名空間

namespace";

}}}//宣告第3個匿名空間(全域性**、根空間**)

namespace

}}

<?php

//宣告頁面字符集

header

("content-type:text/html;charset=utf-8");

//(1)包含檔案

require_once

("./namespace.php");

//(2)建立學生類物件

$obj1

=new()

;$obj2

=new()

;$obj3

=new

teacher()

;

檔案系統中訪問檔案的方式

限定名稱-**例子:

<?php

//宣告第1個命名空間

namespace";

}}//建立學生類物件(非限定訪問方式)

$stuobj

=new

student()

;//建立教師類物件(限定訪問方式)

$staobj

=new

home\teacher()

;//建立教師類物件(完全限定訪問方式)

$staobj

=new()

;}//宣告第2個命名空間

namespace";

}}}

宣告空間關鍵字;

可以用來直接代替當前空間名,相當於self關鍵字。

例子**:

<?php

//宣告第1個命名空間

namespace";

}}$stuobj

=new

namespace\student()

;$staobj

=new

namespace\home\teacher()

;//宣告第2個命名空間

namespace";

}}}

描述:獲取當前命名空間的字串名稱。

**例子:

<?php

//宣告第1個命名空間

namespace";

}}$classname

=__namespace__

."\student"

;//建立學生類物件

$stuobj

=new

$classname()

;}

**例子:

namespace.php

<?php

//宣告第1個命名空間

namespace

;//定義乙個學生類

class

student";

}}

<?php

//宣告頁面字符集

header

("content-type:text/html;charset:utf-8");

//(1)包含檔案

require_once

("./namespace.php");

//(2)匯入空間,預設的空間別名為最後乙個單詞

use;

$obj

=new

controller\student()

;//(3)匯入空間並起別名

useas cont;

$obj

=new

cont\student()

;//(4)匯入空間中的類,預設的類名為最後乙個單詞

use;

$obj

=new

student()

;//(5)匯入空間中的類,並起別名

useas stu;

$obj

=new

stu(

);

PHP命名空間學習筆記

命名空間的支援版本 php 5 5.3.0,php 7 從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案 foo.txt 可以同時在目錄 home greg 和 ...

PHP命名空間筆記

此篇文章作為我從開始學習php到工作一段時間後的命名空間知識點總結,會隨學習和工作的提高而完善 命名空間 定義命名空間意義 一 為了解決多檔案中 相互引入時 類名,常量名,函式名可能會重複命名的問題 二 快速定位檔案位置 三 就是給檔案加個隱式字首 四 命名空間需要寫在檔案的最前面 全域性空間 如果...

命名空間 PHP筆記

命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念,比如在作業系統中,目錄用來將相關檔案分組,對於目錄中的檔案來說,目錄就扮演了命名空間的角色。這個原理應用到程式設計領域就是命名空間的概念。php 5.3後的版本開始支援命名空間。命名空間通過關鍵字namespace來宣告。任何合法的ph...