新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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页面
结果为
我是命名空间"A"中的函数foo()2当前命名空间A下调用命名空间"A\my"中的函数foo() 语法 my\foo();
index.php页面
test.php页面(定义命名空间"A\my"的页面)
结果为
我是命名空间"A\my"中的函数foo()3.当前命名空间A下调用命名空间 "A\B"的函数"foo"
语法
require 'test.php';//加载命名空间 "A\B"的函数"foo"文件
B\foo();
index.php页面
test.php页面(定义命名空间 "A\B"的函数"foo"的页面)
结果为
命名空间 "A\B" 中函数 "foo"4.当前命名空间A下调用本命名空间 "A" 中定义的类 "B" 的 "foo" 静态方法
语法
B::foo();
index.php页面
结果为
命名空间 "A" 中定义的类 "B" 的 "foo" 方法5.当前命名空间A下调用本命名空间 "B" 中定义的类 "D" 的 "foo" 静态方法
语法
require 'test.php'; //加载文件
use B\D; //引导类
D::foo(); //进行调用
index.php页面
test.php页面(定义命名空间 "B"的类"D"的函数"foo"的页面)
结果为
命名空间 "B" 中定义的类 "D" 的 "foo" 方法6.当前命名空间A下调用命名空间 "B"的函数"foo"
语法
require 'test.php';//加载命名空间 "B"的函数"foo"文件
\B\foo();
index.php页面
test.php页面(定义命名空间 "B"的函数"foo"的页面)
结果为
命名空间 "B" 中函数 "foo"7.当前命名空间A下调用全局空间 "B"的函数"foo"静态方法
语法
require 'test.php';//加载全局空间 "B"的函数"foo"文件
\B::foo();
index.php页面
test.php页面(定义全局空间 "B"的函数"foo"的页面)
结果为
全局空间的B类中foo方法8.当前命名空间A下调用命名空间 "A\A"的B类"foo"静态方法
语法
require 'test.php';//加载命名空间 "A\A"的B类"foo"静态方法文件
A\B::foo();
index.php页面
test.php页面(定义命名空间 "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页面
test.php页面(定义命名空间 "A\B"的B类"foo"静态方法的页面)
结果为
命名空间A\B中B类的foo静态方法类引用
1当前命名空间A下本空间类引用 语法 $b=new B();
index.php页面
name;结果为
我是命名空间 "A" 中定义的类 "B" 的一个对象2当前命名空间A下命名空间 "B" 中定义的类 "D"引用
语法
use B\D //导入命名空间B中的D类
$b=new D();
index.php页面
name; ?>test.php页面(定义命名空间B中D类的页面)
结果为
命名空间B中D类3当前命名空间A下命名空间 "C" 中定义的类 "E"引用
语法
use C\E as F //导入命名空间C中的E类 F为命名空间 "C" 中定义的类 "E"的别名
$b=new F();
index.php页面
name; ?>test.php页面(定义命名空间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页面
name; echo 'test.php页面(全局空间中定义的类 "B","D" "F"的页面)
结果为
全局空间的类B 全局空间的类D 全局空间的类F附录
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。