php命名空間與use(php 命名空間和use)

  • 1、PHP 的use 命名空間 是什麼意思
  • 2、php編程高手們來吧 use有什麼用?
  • 3、php use php namespace 到底是怎麼一回事
  • 4、thinkphp 命名空間什麼情況下使用,use後面載入什麼
  • 5、php命名空間 use使用的問題:

有點類似於 java 中的包機制,用來解決重名問題的,每一個命名空間都是獨立的

給你舉個例子吧,比如我現在想寫兩個類,名字都叫 Action

?php

namespace A;    // 定義命名空間

class Action {

    //..

}

namespace B;    // 定義第二個命名空間

class Action {

    //..

}

use 關鍵字用於導入某個命名空間下的類, 如果我在B空間內想使用A空間中的Action類,就需要導入這個類才能使用(當然也可以指明空間前綴來使用)

namespace B;

// 在本空間中需要使用A空間中的Action類,使用use導入

use A\Action;    // 導入,如果本空間中也有一個Action會出現錯誤,因為類重名了

use A\Action as A_Action;   // 通過取別名的方式解決

$var = new A_Action;

php中use用來以別名的方式引入命名空間:

比如在a.php中調用My\Full命名空間下的Fun對象:

use My\Full;

$fun = new Fun();//這樣就可以了,

如果沒有使用use,

則需要:$fun = new My\Full\Fun();//帶著命名空間路徑

1. namespace Zend\Http\PhpEnvironment;

這句代碼定義了一個命名空間,你可以理解為定義一個名稱為 Zend\Http\PhpEnvironment 的域名。

在定義了之後,下面所申明的class, interface, const等都是在申明的這個「域」裡面的。當引用一個申明了命名空間的包含文件,想要調用這個裡面的東西,那就必須:

調整當前腳本也到這個域名里,否則,就得用namesapce的全稱。

比如,inc.php 文件:

namespace Zend\Http\PhpEnvironment;

class Bar {}//定義了一個類

則其他文件調用時:

// 訪問Foo的第一種方法,用全稱

require ‘inc.php’;

$foo = new \Zend\Http\PhpEnvironment\Bar();

// 訪問Foo的第二種方法

namespace Foo; // 調整當前腳本到Foo這個ns域,而且namespace申明必須在第一句

require ‘inc.php’;

$foo = new Bar();

2. use關鍵字目的是使用ns的別名:

比如說,上面的

// 訪問Foo的第一種方法,用全稱

require ‘inc.php’;

$foo = new \Zend\Http\PhpEnvironment\Bar();

用uses後,寫法如下:

use \Zend\Http\PhpEnvironment as pe; //定義別名

$foo = new \pe\Bar(); //用短的別名來代替原來的

如果省略後面的as ….,那麼,就可以直接用最後一節的文字來代替,比如,上面的:

use \Zend\Http\PhpEnvironment; //定義別名

$foo = new \PhpEnvironment\Bar(); //用短的別名來代替原來的

================================================

php官方手冊中的相關內容:

在PHP中,namespace命名空間用來解決在編寫類庫或應用程序時創建可重用的代碼如類或函數時碰到的兩類問題:

1. 用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字衝突。

2. 為很長的標識符名稱(通常是為了緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,提高源代碼的可讀性。

PHP 命名空間提供了一種將相關的類、函數和常量組合到一起的途徑。

PHP 命名空間支持有兩種使用別名或導入方式:為類名稱使用別名,或為命名空間名稱使用別名, 別名通過操作符 use 來實現。

命名空間其實只是為了載入文件更方便,tp的自動載入機制使用了它。

use 是繼承類使用的關鍵詞,當載入父類時,tp會更加use後面的命名空間查找對應的文件。tp會在多個目錄進行查找,具體的可以查看tp文檔的自動載入機制。

命名空間是運行時解析的。use就相當於一種聲明,並不解析和載入。在使用時就可以自動載入進來,那麼這裡你就可以理解為把db這個類庫導入進來了,所以可以正常使用。

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126309.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • ArcGIS 空間連接

    ArcGIS 空間連接是一個非常強大的工具,它可以用於在 ArcGIS 中連接不同的數據源,在不同的地理空間數據之間進行交互,實現數據的整合和優化。本文將從多個方面,詳細介紹 Ar…

    編程 2025-04-23

發表回復

登錄後才能評論