PHP學習筆記7 如何靈活運用命名空間?

2021-10-13 09:55:36 字數 1787 閱讀 3929

也稱命名空間,是乙個比較寬泛的概念。什麼是命名空間?廣義上,可以理解為用來封裝各個專案的方法。我看了一下書上介紹的也不是很好理解,但是php官方介紹了一段文字比較通俗易懂。摘抄如下:

在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案

foo.txt 可以同時在目錄/home/greg 和 /home/other 中存在,但在同乙個目錄中不能存在兩個 foo.txt

檔案。另外,在目錄 /home/greg 外訪問 foo.txt 檔案時,我們必須將目錄名以及目錄分隔符放在檔名之前得到

/home/greg/foo.txt。這個原理應用到程式設計領域就是命名空間的概念。

在php中,命名空間用來解決在編寫類庫或應用程式時建立可重用的**如類或函式時碰到的兩類問題:

使用者編寫的**與php內部的類/函式/常量或第三方類/函式/常量之間的名字衝突。

為很長的識別符號名稱(通常是為了緩解第一類問題而定義的)建立乙個別名(或簡短)的名稱,提高源**的可讀性。

<?php

namespace

my\name

;// 參考下面"定義命名空間" 小節

class

myclass

function

myfunction()

const

myconst=1

;$a=new

myclass;$c

=new

\my\name\myclass

;// 參考 "全域性空間" 小節$a=

strlen

('hi');

$d=namespace\myconst

;// 參考 "namespace操作符和__namespace__常量」 小節$d=

__namespace__

.'\myconst'

;echo

constant($d

);// 參考 "命名空間和動態語言特徵" 小節

?>

注意:

名為php或php的命名空間,以及以這些名字開頭的命名空間(例如php\classes)被保留用作語言核心使用,而不應該在使用者空間的**中使用。

命名空間通過關鍵字namespace來宣告。如果乙個檔案中包含命名空間,它必須在其他所有**之前宣告命名空間。除了前面學過的標量型別的宣告(因為標量型別declare需要在所有字元之前宣告,也就是說除了declare外,命名空間都是寫在第一條的語句)

<?php

>

namespace

myname

;//這樣是錯誤的,命名空間必須是程式指令碼的第一條語句

?>

<

/html>

另外,與php其他的語言特徵不同,同乙個命名空間可以定義在多個檔案中,即允許將同乙個命名空間的內容分割存放在不同的檔案中。

與目錄和檔案的關係很像,php命名空間也允許指定層次化的命名空間的名稱。因此,命名空間的名字可以使用分層次的方式定義:

<?php

namespace

my\test\xuexi

;?>

具體更多使用方法,到這裡查詢:

php官方幫助手冊

包含命名空間中所有的用法,基礎,定名,子命名空間,別名/匯入、全域性空間等等。是中文的。

如何靈活運用PHP判斷字串的包含 PHP陣列包含

php語言是乙個功能強大的嵌入式html指令碼語言,它的易用性讓許多程式設計師選擇使用。php判斷字串的包含,可以使用php的內建函式strstr,strpos,stristr直接進行判斷.也可以通過explode函式的作用寫乙個判斷函式。下面介紹php判斷字串的包含的具體使用方法 1.strstr...

靈活運用命令列控制台 Dos命令詳解

開始 系統 命令提示符 win鍵 r 輸入cmd回車進入 在任意資料夾下,按住shift鍵 滑鼠右鍵點選,在此處開啟命令列視窗 資源管理器的位址列前面加上cmd 空格 路徑 碟符切換 d 檢視當前目錄下的所有檔案 dir 切換目錄 cd change directory cd d 加 d引數可實現跨...

PHP7 學習筆記(十二)gRPC

github 環境 linux php7 1 安裝grpc pecl install grpc編譯成功提示資訊 build process completed successfully installing usr local php 7.1.8 lib php extensions no debu...