php命名空间规则解析及高级功能,PHP命名空间解析规则
PHP 5.3加入命名空間特性之后,相信很多朋友在產(chǎn)品開(kāi)發(fā)的中已經(jīng)大量使用了,
不過(guò)其解析規(guī)則反正是讓我糾結(jié)了一下子,不注意就會(huì)被搞暈,幸好在手冊(cè)中發(fā)現(xiàn)這么一段代碼,
故手冊(cè)中其他關(guān)于namespace的內(nèi)容,就可以忽略了,直接看下面的代碼
namespace A;
use B\D, C\E as F;
// 函數(shù)調(diào)用
foo(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù)foo()
// 再?lài)L試調(diào)用全局函數(shù) "foo"
\foo(); // 調(diào)用全局空間函數(shù) "foo"
my\foo(); // 調(diào)用定義在命名空間"A\my"中函數(shù) "foo"
F(); // 首先嘗試調(diào)用定義在命名空間"A"中的函數(shù) "F"
// 再?lài)L試調(diào)用全局函數(shù) "F"
// 類(lèi)引用
new B(); // 創(chuàng)建命名空間 "A" 中定義的類(lèi) "B" 的一個(gè)對(duì)象
// 如果未找到,則嘗試自動(dòng)裝載類(lèi) "A\B"
new D(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "B" 中定義的類(lèi) "D" 的一個(gè)對(duì)象
// 如果未找到,則嘗試自動(dòng)裝載類(lèi) "B\D"
new F(); // 使用導(dǎo)入規(guī)則,創(chuàng)建命名空間 "C" 中定義的類(lèi) "E" 的一個(gè)對(duì)象
// 如果未找到,則嘗試自動(dòng)裝載類(lèi) "C\E"
new \B(); // 創(chuàng)建定義在全局空間中的類(lèi) "B" 的一個(gè)對(duì)象
// 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類(lèi) "B"
new \D(); // 創(chuàng)建定義在全局空間中的類(lèi) "D" 的一個(gè)對(duì)象
// 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類(lèi) "D"
new \F(); // 創(chuàng)建定義在全局空間中的類(lèi) "F" 的一個(gè)對(duì)象
// 如果未發(fā)現(xiàn),則嘗試自動(dòng)裝載類(lèi) "F"
// 調(diào)用另一個(gè)命名空間中的靜態(tài)方法或命名空間函數(shù)
B\foo(); // 調(diào)用命名空間 "A\B" 中函數(shù) "foo"
B::foo(); // 調(diào)用命名空間 "A" 中定義的類(lèi) "B" 的 "foo" 方法
// 如果未找到類(lèi) "A\B" ,則嘗試自動(dòng)裝載類(lèi) "A\B"
D::foo(); // 使用導(dǎo)入規(guī)則,調(diào)用命名空間 "B" 中定義的類(lèi) "D" 的 "foo" 方法
// 如果類(lèi) "B\D" 未找到,則嘗試自動(dòng)裝載類(lèi) "B\D"
\B\foo(); // 調(diào)用命名空間 "B" 中的函數(shù) "foo"
\B::foo(); // 調(diào)用全局空間中的類(lèi) "B" 的 "foo" 方法
// 如果類(lèi) "B" 未找到,則嘗試自動(dòng)裝載類(lèi) "B"
// 當(dāng)前命名空間中的靜態(tài)方法或函數(shù)
A\B::foo(); // 調(diào)用命名空間 "A\A" 中定義的類(lèi) "B" 的 "foo" 方法
// 如果類(lèi) "A\A\B" 未找到,則嘗試自動(dòng)裝載類(lèi) "A\A\B"
\A\B::foo(); // 調(diào)用命名空間 "A\B" 中定義的類(lèi) "B" 的 "foo" 方法
// 如果類(lèi) "A\B" 未找到,則嘗試自動(dòng)裝載類(lèi) "A\B"
總結(jié)
以上是生活随笔為你收集整理的php命名空间规则解析及高级功能,PHP命名空间解析规则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux的shell命令 a,linu
- 下一篇: php 多表查询输出,ThinkPHP多