PHP namespace 命名空間 函數(shù)調(diào)用 類引用 詳細(xì)測(cè)試分析
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到泗縣網(wǎng)站設(shè)計(jì)與泗縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋泗縣地區(qū)。本文測(cè)試中,假設(shè)index.php頁(yè)面和test.php頁(yè)面在同一個(gè)根目錄下,方便加載test.php頁(yè)面。
前提條件都是在namespace A;下進(jìn)行測(cè)試。
namespace A; use B\D, C\E as F;// 函數(shù)調(diào)用
foo(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù)foo()
\foo(); // 調(diào)用全局空間函數(shù) "foo"
my\foo(); // 調(diào)用定義在命名空間"A\my"中函數(shù) "foo"
F(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù) "F"
B\foo(); // 調(diào)用命名空間 "A\B" 中函數(shù) "foo"
B::foo(); // 調(diào)用命名空間 "A" 中定義的類 "B" 的 "foo" 方法
D::foo(); // 使用導(dǎo)入規(guī)則,調(diào)用命名空間 "B" 中定義的類 "D" 的 "foo" 方法
\B\foo(); // 調(diào)用命名空間 "B" 中的函數(shù) "foo"
\B::foo(); // 調(diào)用全局空間中的類 "B" 的 "foo" 方法
A\B::foo(); // 調(diào)用命名空間 "A\A" 中定義的類 "B" 的 "foo" 方法
\A\B::foo(); // 調(diào)用命名空間 "A\B" 中定義的類 "B" 的 "foo" 方法
//類引用
new B(); // 創(chuàng)建命名空間 "A" 中定義的類 "B" 的一個(gè)對(duì)象
new D(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "B" 中定義的類 "D" 的一個(gè)對(duì)象
new F(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "C" 中定義的類 "E" 的一個(gè)對(duì)象
new \B(); // 創(chuàng)建定義在全局空間中的類 "B" 的一個(gè)對(duì)象
new \D(); // 創(chuàng)建定義在全局空間中的類 "D" 的一個(gè)對(duì)象
new \F(); // 創(chuàng)建定義在全局空間中的類 "F" 的一個(gè)對(duì)象
函數(shù)調(diào)用
1當(dāng)前命名空間A下函數(shù)調(diào)用 語(yǔ)法 foo();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php';//加載定義命名空間"A\my"的頁(yè)面 function foo(){ echo '我是命名空間"A"中的函數(shù)foo()'; } // 函數(shù)調(diào)用 foo(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù)foo() // 再嘗試調(diào)用全局函數(shù) "foo"結(jié)果為
我是命名空間"A"中的函數(shù)foo()2當(dāng)前命名空間A下調(diào)用命名空間"A\my"中的函數(shù)foo() 語(yǔ)法 my\foo();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php';//加載定義命名空間"A\my"的頁(yè)面 //調(diào)用函數(shù) my\foo(); // 調(diào)用定義在命名空間"A\my"中函數(shù) "foo" ?>test.php頁(yè)面(定義命名空間"A\my"的頁(yè)面)
<?php namespace A\my; function foo(){ echo '我是命名空間"A\my"中的函數(shù)foo()'; } ?>結(jié)果為
我是命名空間"A\my"中的函數(shù)foo()3.當(dāng)前命名空間A下調(diào)用命名空間 "A\B"的函數(shù)"foo"
語(yǔ)法
require 'test.php';//加載命名空間 "A\B"的函數(shù)"foo"文件
B\foo();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間 "A\B"的函數(shù)"foo"文件 B\foo(); // 調(diào)用命名空間 "A\B" 中函數(shù) "foo" ?>test.php頁(yè)面(定義命名空間 "A\B"的函數(shù)"foo"的頁(yè)面)
<?php namespace A\B; function foo(){ echo '命名空間 "A\B" 中函數(shù) "foo"'; } ?>結(jié)果為
命名空間 "A\B" 中函數(shù) "foo"4.當(dāng)前命名空間A下調(diào)用本命名空間 "A" 中定義的類 "B" 的 "foo" 靜態(tài)方法
語(yǔ)法
B::foo();
index.php頁(yè)面
<?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(); // 調(diào)用命名空間 "A" 中定義的類 "B" 的 "foo" 方法 // 如果未找到類 "A\B" ,則嘗試自動(dòng)裝載類 "A\B" ?>結(jié)果為
命名空間 "A" 中定義的類 "B" 的 "foo" 方法5.當(dāng)前命名空間A下調(diào)用本命名空間 "B" 中定義的類 "D" 的 "foo" 靜態(tài)方法
語(yǔ)法
require 'test.php'; //加載文件
use B\D; //引導(dǎo)類
D::foo(); //進(jìn)行調(diào)用
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php'; use B\D, C\E as F; D::foo(); // 使用導(dǎo)入規(guī)則,調(diào)用命名空間 "B" 中定義的類 "D" 的 "foo" 方法 // 如果類 "B\D" 未找到,則嘗試自動(dòng)裝載類 "B\D" ?>test.php頁(yè)面(定義命名空間 "B"的類"D"的函數(shù)"foo"的頁(yè)面)
<?php namespace B; class D{ static public function foo(){ echo '命名空間 "B" 中定義的類 "D" 的 "foo" 方法'; } } ?>結(jié)果為
命名空間 "B" 中定義的類 "D" 的 "foo" 方法6.當(dāng)前命名空間A下調(diào)用命名空間 "B"的函數(shù)"foo"
語(yǔ)法
require 'test.php';//加載命名空間 "B"的函數(shù)"foo"文件
\B\foo();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載命名空間 "B"的函數(shù)"foo"文件 \B\foo(); // 調(diào)用命名空間 "B" 中函數(shù) "foo" ?>test.php頁(yè)面(定義命名空間 "B"的函數(shù)"foo"的頁(yè)面)
<?php namespace B; function foo(){ echo '命名空間 "B" 中函數(shù) "foo"'; } ?>結(jié)果為
命名空間 "B" 中函數(shù) "foo"7.當(dāng)前命名空間A下調(diào)用全局空間 "B"的函數(shù)"foo"靜態(tài)方法
語(yǔ)法
require 'test.php';//加載全局空間 "B"的函數(shù)"foo"文件
\B::foo();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; require 'test.php';//加載全局空間 "B"的函數(shù)"foo"文件 \B::foo(); // 調(diào)用全局空間中的類 "B" 的 "foo" 方法 // 如果類 "B" 未找到,則嘗試自動(dòng)裝載類 "B" ?>test.php頁(yè)面(定義全局空間 "B"的函數(shù)"foo"的頁(yè)面)
<?php class B{ static public function foo(){ echo '全局空間的B類中foo方法'; } } ?>結(jié)果為
全局空間的B類中foo方法8.當(dāng)前命名空間A下調(diào)用命名空間 "A\A"的B類"foo"靜態(tài)方法
語(yǔ)法
require 'test.php';//加載命名空間 "A\A"的B類"foo"靜態(tài)方法文件
A\B::foo();
index.php頁(yè)面
<?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"靜態(tài)方法文件 A\B::foo(); // 調(diào)用命名空間 "A\A" 中定義的類 "B" 的 "foo" 方法 // 如果類 "A\A\B" 未找到,則嘗試自動(dòng)裝載類 "A\A\B" ?>test.php頁(yè)面(定義命名空間 "A\A"的B類"foo"靜態(tài)方法的頁(yè)面)
<?php namespace A\A; class B{ static public function foo(){ echo '命名空間A\A中B類foo方法'; } } ?>結(jié)果為
命名空間A\A中B類foo方法9.當(dāng)前命名空間A下調(diào)用命名空間 "A\B"的B類"foo"靜態(tài)方法
語(yǔ)法
require 'test.php';//加載命名空間 "A\B"的B類"foo"靜態(tài)方法文件
\A\B::foo();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); require 'test.php';//加載命名空間 "A\B"的B類"foo"靜態(tài)方法文件 \A\B::foo(); // 調(diào)用命名空間 "A\B" 中定義的類 "B" 的 "foo" 方法 // 如果類 "A\B" 未找到,則嘗試自動(dòng)裝載類 "A\B" ?>test.php頁(yè)面(定義命名空間 "A\B"的B類"foo"靜態(tài)方法的頁(yè)面)
<?php namespace A\B; class B{ static public function foo(){ echo '命名空間A\B中B類的foo靜態(tài)方法'; } } ?>結(jié)果為
命名空間A\B中B類的foo靜態(tài)方法類引用
1當(dāng)前命名空間A下本空間類引用 語(yǔ)法 $b=new B();
index.php頁(yè)面
<?php namespace A; header("content-type:text/html;charset=utf-8"); use B\D, C\E as F; class B{ public $name='我是命名空間 "A" 中定義的類 "B" 的一個(gè)對(duì)象'; } $b=new B(); // 創(chuàng)建命名空間 "A" 中定義的類 "B" 的一個(gè)對(duì)象 // 如果未找到,則嘗試自動(dòng)裝載類 "A\B" echo $b->name;結(jié)果為
我是命名空間 "A" 中定義的類 "B" 的一個(gè)對(duì)象2當(dāng)前命名空間A下命名空間 "B" 中定義的類 "D"引用
語(yǔ)法
use B\D //導(dǎo)入命名空間B中的D類
$b=new D();
index.php頁(yè)面
<?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(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "B" 中定義的類 "D" 的一個(gè)對(duì)象 // 如果未找到,則嘗試自動(dòng)裝載類 "B\D" echo $d->name; ?>test.php頁(yè)面(定義命名空間B中D類的頁(yè)面)
<?php namespace B; class D{ public $name='命名空間B中D類'; } ?>結(jié)果為
命名空間B中D類3當(dāng)前命名空間A下命名空間 "C" 中定義的類 "E"引用
語(yǔ)法
use C\E as F //導(dǎo)入命名空間C中的E類 F為命名空間 "C" 中定義的類 "E"的別名
$b=new F();
index.php頁(yè)面
<?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(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "C" 中定義的類 "E" 的一個(gè)對(duì)象 // 如果未找到,則嘗試自動(dòng)裝載類 "C\E" echo $f->name; ?>test.php頁(yè)面(定義命名空間C中E類的頁(yè)面)
<?php namespace C; class E{ public $name='命名空間C中E類'; } ?>結(jié)果為
命名空間C中E類4當(dāng)前命名空間A下全局空間中定義的類 "B","D" "F"引用
語(yǔ)法
require 'test.php';//加載全局空間中定義的類 "B","D" "F"文件
$b=new \B(); // \ 表示絕對(duì)路徑引用 全局空間中定義的類
$d=new \D();
$f=new \F();
index.php頁(yè)面
<?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(); // 創(chuàng)建定義在全局空間中的類 "B" 的一個(gè)對(duì)象 // 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類 "B" $d=new \D(); // 創(chuàng)建定義在全局空間中的類 "D" 的一個(gè)對(duì)象 // 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類 "D" $f=new \F(); // 創(chuàng)建定義在全局空間中的類 "F" 的一個(gè)對(duì)象 // 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類 "F" echo $b->name; echo '<br/>'; echo $d->name; echo '<br/>'; echo $f->name; ?>test.php頁(yè)面(全局空間中定義的類 "B","D" "F"的頁(yè)面)
<?php class B{ public $name='全局空間的類B'; } class D{ public $name='全局空間的類D'; } class F{ public $name='全局空間的類F'; } ?>結(jié)果為
全局空間的類B 全局空間的類D 全局空間的類F附錄
<?php namespace A; use B\D, C\E as F; // 函數(shù)調(diào)用 foo(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù)foo() // 再嘗試調(diào)用全局函數(shù) "foo" \foo(); // 調(diào)用全局空間函數(shù) "foo" my\foo(); // 調(diào)用定義在命名空間"A\my"中函數(shù) "foo" F(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù) "F" // 再嘗試調(diào)用全局函數(shù) "F" // 類引用 new B(); // 創(chuàng)建命名空間 "A" 中定義的類 "B" 的一個(gè)對(duì)象 // 如果未找到,則嘗試自動(dòng)裝載類 "A\B" new D(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "B" 中定義的類 "D" 的一個(gè)對(duì)象 // 如果未找到,則嘗試自動(dòng)裝載類 "B\D" new F(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "C" 中定義的類 "E" 的一個(gè)對(duì)象 // 如果未找到,則嘗試自動(dòng)裝載類 "C\E" new \B(); // 創(chuàng)建定義在全局空間中的類 "B" 的一個(gè)對(duì)象 // 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類 "B" new \D(); // 創(chuàng)建定義在全局空間中的類 "D" 的一個(gè)對(duì)象 // 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類 "D" new \F(); // 創(chuàng)建定義在全局空間中的類 "F" 的一個(gè)對(duì)象 // 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類 "F" // 調(diào)用另一個(gè)命名空間中的靜態(tài)方法或命名空間函數(shù) B\foo(); // 調(diào)用命名空間 "A\B" 中函數(shù) "foo" B::foo(); // 調(diào)用命名空間 "A" 中定義的類 "B" 的 "foo" 方法 // 如果未找到類 "A\B" ,則嘗試自動(dòng)裝載類 "A\B" D::foo(); // 使用導(dǎo)入規(guī)則,調(diào)用命名空間 "B" 中定義的類 "D" 的 "foo" 方法 // 如果類 "B\D" 未找到,則嘗試自動(dòng)裝載類 "B\D" \B\foo(); // 調(diào)用命名空間 "B" 中的函數(shù) "foo" \B::foo(); // 調(diào)用全局空間中的類 "B" 的 "foo" 方法 // 如果類 "B" 未找到,則嘗試自動(dòng)裝載類 "B" // 當(dāng)前命名空間中的靜態(tài)方法或函數(shù) A\B::foo(); // 調(diào)用命名空間 "A\A" 中定義的類 "B" 的 "foo" 方法 // 如果類 "A\A\B" 未找到,則嘗試自動(dòng)裝載類 "A\A\B" \A\B::foo(); // 調(diào)用命名空間 "A\B" 中定義的類 "B" 的 "foo" 方法 // 如果類 "A\B" 未找到,則嘗試自動(dòng)裝載類 "A\B" ?>另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前標(biāo)題:PHP命名空間namespace函數(shù)調(diào)用類引用詳解-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article42/dppchc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容