99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

PHP命名空間namespace函數調用類引用詳解-創新互聯

PHP namespace 命名空間 函數調用 類引用 詳細測試分析

站在用戶的角度思考問題,與客戶深入溝通,找到泗縣網站設計與泗縣網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都做網站、成都網站制作、企業官網、英文網站、手機端網站、網站推廣、申請域名雅安服務器托管、企業郵箱。業務覆蓋泗縣地區。

本文測試中,假設index.php頁面和test.php頁面在同一個根目錄下,方便加載test.php頁面。

前提條件都是在namespace A;下進行測試。

namespace A; use B\D, C\E as F;

// 函數調用
foo();     // 首先嘗試調用定義在命名空間"A"中的函數foo()
\foo();    // 調用全局空間函數 "foo"
my\foo();  // 調用定義在命名空間"A\my"中函數 "foo"
F();       // 首先嘗試調用定義在命名空間"A"中的函數 "F"
B\foo();   // 調用命名空間 "A\B" 中函數 "foo"
B::foo();  // 調用命名空間 "A" 中定義的類 "B" 的 "foo" 方法
D::foo();  // 使用導入規則,調用命名空間 "B" 中定義的類 "D" 的 "foo" 方法
\B\foo();  // 調用命名空間 "B" 中的函數 "foo"
\B::foo(); // 調用全局空間中的類 "B" 的 "foo" 方法
A\B::foo();  // 調用命名空間 "A\A" 中定義的類 "B" 的 "foo" 方法
\A\B::foo(); // 調用命名空間 "A\B" 中定義的類 "B" 的 "foo" 方法

//類引用
new B();   // 創建命名空間 "A" 中定義的類 "B" 的一個對象
new D();   // 使用導入規則,創建命名空間 "B" 中定義的類 "D" 的一個對象
new F();   // 使用導入規則,創建命名空間 "C" 中定義的類 "E" 的一個對象
new \B();  // 創建定義在全局空間中的類 "B" 的一個對象
new \D();  // 創建定義在全局空間中的類 "D" 的一個對象
new \F();  // 創建定義在全局空間中的類 "F" 的一個對象

函數調用

1當前命名空間A下函數調用 語法 foo();

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php';//加載定義命名空間"A\my"的頁面 function foo(){     echo '我是命名空間"A"中的函數foo()'; } // 函數調用 foo();      // 首先嘗試調用定義在命名空間"A"中的函數foo()             // 再嘗試調用全局函數 "foo"

結果為

我是命名空間"A"中的函數foo()

2當前命名空間A下調用命名空間"A\my"中的函數foo() 語法 my\foo();

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php';//加載定義命名空間"A\my"的頁面 //調用函數 my\foo();   // 調用定義在命名空間"A\my"中函數 "foo" ?>

test.php頁面(定義命名空間"A\my"的頁面)

<?php  namespace A\my;  function foo(){      echo '我是命名空間"A\my"中的函數foo()';  } ?>

結果為

我是命名空間"A\my"中的函數foo()

3.當前命名空間A下調用命名空間 "A\B"的函數"foo"

語法

require 'test.php';//加載命名空間 "A\B"的函數"foo"文件

B\foo();           

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間 "A\B"的函數"foo"文件 B\foo();    // 調用命名空間 "A\B" 中函數 "foo" ?>

test.php頁面(定義命名空間 "A\B"的函數"foo"的頁面)

<?php  namespace A\B; function foo(){     echo '命名空間 "A\B" 中函數 "foo"'; } ?>

結果為

命名空間 "A\B" 中函數 "foo"

4.當前命名空間A下調用本命名空間 "A" 中定義的類 "B" 的 "foo" 靜態方法

語法

B::foo();           

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; class B{    static  public function foo(){         echo '命名空間 "A" 中定義的類 "B" 的 "foo" 方法';     } } B::foo();   // 調用命名空間 "A" 中定義的類 "B" 的 "foo" 方法             // 如果未找到類 "A\B" ,則嘗試自動裝載類 "A\B" ?>

結果為

命名空間 "A" 中定義的類 "B" 的 "foo" 方法

5.當前命名空間A下調用本命名空間 "B" 中定義的類 "D" 的 "foo" 靜態方法

語法

require 'test.php';  //加載文件

use B\D;               //引導類

D::foo();               //進行調用

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php'; use B\D, C\E as F; D::foo();   // 使用導入規則,調用命名空間 "B" 中定義的類 "D" 的 "foo" 方法             // 如果類 "B\D" 未找到,則嘗試自動裝載類 "B\D" ?>

test.php頁面(定義命名空間 "B"的類"D"的函數"foo"的頁面)

<?php namespace B; class D{ static public function foo(){ echo '命名空間 "B" 中定義的類 "D" 的 "foo" 方法'; } } ?>

結果為

命名空間 "B" 中定義的類 "D" 的 "foo" 方法

6.當前命名空間A下調用命名空間 "B"的函數"foo"

語法

require 'test.php';//加載命名空間 "B"的函數"foo"文件

\B\foo();           

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間 "B"的函數"foo"文件 \B\foo();    // 調用命名空間 "B" 中函數 "foo" ?>

test.php頁面(定義命名空間 "B"的函數"foo"的頁面)

<?php  namespace B; function foo(){     echo '命名空間 "B" 中函數 "foo"'; } ?>

結果為

命名空間 "B" 中函數 "foo"

7.當前命名空間A下調用全局空間 "B"的函數"foo"靜態方法

語法

require 'test.php';//加載全局空間 "B"的函數"foo"文件

\B::foo();           

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載全局空間 "B"的函數"foo"文件 \B::foo();  // 調用全局空間中的類 "B" 的 "foo" 方法             // 如果類 "B" 未找到,則嘗試自動裝載類 "B" ?>

test.php頁面(定義全局空間 "B"的函數"foo"的頁面)

<?php  class B{     static public function foo(){         echo '全局空間的B類中foo方法';     } } ?>

結果為

全局空間的B類中foo方法

8.當前命名空間A下調用命名空間 "A\A"的B類"foo"靜態方法

語法

require 'test.php';//加載命名空間 "A\A"的B類"foo"靜態方法文件

A\B::foo();           

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間 "A\A"的B類"foo"靜態方法文件 A\B::foo();   // 調用命名空間 "A\A" 中定義的類 "B" 的 "foo" 方法               // 如果類 "A\A\B" 未找到,則嘗試自動裝載類 "A\A\B" ?>

test.php頁面(定義命名空間 "A\A"的B類"foo"靜態方法的頁面)

<?php  namespace A\A; class B{     static public function foo(){         echo '命名空間A\A中B類foo方法';     } } ?>

結果為

命名空間A\A中B類foo方法

9.當前命名空間A下調用命名空間 "A\B"的B類"foo"靜態方法

語法

require 'test.php';//加載命名空間 "A\B"的B類"foo"靜態方法文件

\A\B::foo();           

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php';//加載命名空間 "A\B"的B類"foo"靜態方法文件 \A\B::foo();  // 調用命名空間 "A\B" 中定義的類 "B" 的 "foo" 方法               // 如果類 "A\B" 未找到,則嘗試自動裝載類 "A\B" ?>

test.php頁面(定義命名空間 "A\B"的B類"foo"靜態方法的頁面)

<?php  namespace A\B; class B{     static public function foo(){         echo '命名空間A\B中B類的foo靜態方法';     } } ?>

結果為

命名空間A\B中B類的foo靜態方法

類引用

1當前命名空間A下本空間類引用 語法 $b=new B();

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; class B{     public $name='我是命名空間 "A" 中定義的類 "B" 的一個對象'; } $b=new B();    // 創建命名空間 "A" 中定義的類 "B" 的一個對象               // 如果未找到,則嘗試自動裝載類 "A\B" echo $b->name;

結果為

我是命名空間 "A" 中定義的類 "B" 的一個對象

2當前命名空間A下命名空間 "B" 中定義的類 "D"引用 

語法

use B\D       //導入命名空間B中的D類

$b=new D();

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間B中的D類的文件 $d=new D();    // 使用導入規則,創建命名空間 "B" 中定義的類 "D" 的一個對象             // 如果未找到,則嘗試自動裝載類 "B\D" echo $d->name; ?>

test.php頁面(定義命名空間B中D類的頁面)

<?php  namespace B;  class D{      public $name='命名空間B中D類';  } ?>

結果為

命名空間B中D類

3當前命名空間A下命名空間 "C" 中定義的類 "E"引用 

語法

use C\E as F       //導入命名空間C中的E類 F為命名空間 "C" 中定義的類 "E"的別名

$b=new F();

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間C中的E類的文件 $f=new F();    // 使用導入規則,創建命名空間 "C" 中定義的類 "E" 的一個對象             // 如果未找到,則嘗試自動裝載類 "C\E" echo $f->name; ?>

test.php頁面(定義命名空間C中E類的頁面)

<?php  namespace C;  class E{      public $name='命名空間C中E類';  } ?>

結果為

命名空間C中E類

4當前命名空間A下全局空間中定義的類 "B","D" "F"引用 

語法

require 'test.php';//加載全局空間中定義的類 "B","D" "F"文件

$b=new \B(); //   \ 表示絕對路徑引用 全局空間中定義的類

$d=new \D();

$f=new \F();

index.php頁面

<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載全局空間中定義的類 "B","D" "F"文件 $b=new \B();   // 創建定義在全局空間中的類 "B" 的一個對象             // 如果未發現,則嘗試自動裝載類 "B" $d=new \D();   // 創建定義在全局空間中的類 "D" 的一個對象             // 如果未發現,則嘗試自動裝載類 "D"   $f=new \F();   // 創建定義在全局空間中的類 "F" 的一個對象             // 如果未發現,則嘗試自動裝載類 "F" echo $b->name; echo '<br/>'; echo $d->name; echo '<br/>'; echo $f->name; ?>

test.php頁面(全局空間中定義的類 "B","D" "F"的頁面)

<?php  class B{     public $name='全局空間的類B'; } class D{     public $name='全局空間的類D'; } class F{     public $name='全局空間的類F'; } ?>

結果為

全局空間的類B 全局空間的類D 全局空間的類F

附錄

<?php namespace A; use B\D, C\E as F;   // 函數調用   foo();      // 首先嘗試調用定義在命名空間"A"中的函數foo()             // 再嘗試調用全局函數 "foo"   \foo();     // 調用全局空間函數 "foo"    my\foo();   // 調用定義在命名空間"A\my"中函數 "foo"    F();        // 首先嘗試調用定義在命名空間"A"中的函數 "F"              // 再嘗試調用全局函數 "F"   // 類引用   new B();    // 創建命名空間 "A" 中定義的類 "B" 的一個對象             // 如果未找到,則嘗試自動裝載類 "A\B"   new D();    // 使用導入規則,創建命名空間 "B" 中定義的類 "D" 的一個對象             // 如果未找到,則嘗試自動裝載類 "B\D"   new F();    // 使用導入規則,創建命名空間 "C" 中定義的類 "E" 的一個對象             // 如果未找到,則嘗試自動裝載類 "C\E"   new \B();   // 創建定義在全局空間中的類 "B" 的一個對象             // 如果未發現,則嘗試自動裝載類 "B"   new \D();   // 創建定義在全局空間中的類 "D" 的一個對象             // 如果未發現,則嘗試自動裝載類 "D"   new \F();   // 創建定義在全局空間中的類 "F" 的一個對象             // 如果未發現,則嘗試自動裝載類 "F"   // 調用另一個命名空間中的靜態方法或命名空間函數   B\foo();    // 調用命名空間 "A\B" 中函數 "foo"   B::foo();   // 調用命名空間 "A" 中定義的類 "B" 的 "foo" 方法             // 如果未找到類 "A\B" ,則嘗試自動裝載類 "A\B"   D::foo();   // 使用導入規則,調用命名空間 "B" 中定義的類 "D" 的 "foo" 方法             // 如果類 "B\D" 未找到,則嘗試自動裝載類 "B\D"   \B\foo();   // 調用命名空間 "B" 中的函數 "foo"    \B::foo();  // 調用全局空間中的類 "B" 的 "foo" 方法             // 如果類 "B" 未找到,則嘗試自動裝載類 "B"   // 當前命名空間中的靜態方法或函數   A\B::foo();   // 調用命名空間 "A\A" 中定義的類 "B" 的 "foo" 方法               // 如果類 "A\A\B" 未找到,則嘗試自動裝載類 "A\A\B"   \A\B::foo();  // 調用命名空間 "A\B" 中定義的類 "B" 的 "foo" 方法               // 如果類 "A\B" 未找到,則嘗試自動裝載類 "A\B" ?>

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前標題:PHP命名空間namespace函數調用類引用詳解-創新互聯
網站URL:http://www.yijiale78.com/article42/dppchc.html

成都網站建設公司_創新互聯,為您提供網站收錄做網站外貿網站建設企業網站制作靜態網站網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營