在这里中我们介绍了php教程命名空间的用途和namespace关键字,在这篇文章中我们将介绍一下use命令的使用以及php如何解析命名空间的名字的。
namespace bakbaba; function bab(){ echo "bi"; } namespace kkk; function k1(){ echo "k1"; }
bakbababab();//在kkk的命名空间下使用别的命名空间,注意前面的
use bakbaba as b;//依旧在kkk的命名空间下,但是用别名的的时候以下方法也正确
#use bakbaba as b;//前面可以不使用号
bbab();//使用别名下命名空间的时候前面不该有号
k1();//调用该函数没有报错,说明use不影响当前当前命名空间
lib2.php
幸好在手册中发现这么一段代码,故手册中其他关于namespace的内容,就可以忽略了,直接看下面的代码
<?php namespace a; use bd, ce as f; // 函数调用 foo(); // 首先尝试调用定义在命名空间"a"中的函数foo() // 再尝试调用全局函数 "foo" foo(); // 调用全局空间函数 "foo" myfoo(); // 调用定义在命名空间"amy"中函数 "foo" f(); // 首先尝试调用定义在命名空间"a"中的函数 "f" // 再尝试调用全局函数 "f" // 类引用 new b(); // 创建命名空间 "a" 中定义的类 "b" 的一个对象 // 如果未找到,则尝试自动装载类 "ab" new d(); // 使用导入规则,创建命名空间 "b" 中定义的类 "d" 的一个对象 // 如果未找到,则尝试自动装载类 "bd" new f(); // 使用导入规则,创建命名空间 "c" 中定义的类 "e" 的一个对象 // 如果未找到,则尝试自动装载类 "ce" new b(); // 创建定义在全局空间中的类 "b" 的一个对象 // 如果未发现,则尝试自动装载类 "b" new d(); // 创建定义在全局空间中的类 "d" 的一个对象 // 如果未发现,则尝试自动装载类 "d" new f(); // 创建定义在全局空间中的类 "f" 的一个对象 // 如果未发现,则尝试自动装载类 "f" // 调用另一个命名空间中的静态方法或命名空间函数 bfoo(); // 调用命名空间 "ab" 中函数 "foo" b::foo(); // 调用命名空间 "a" 中定义的类 "b" 的 "foo" 方法 // 如果未找到类 "ab" ,则尝试自动装载类 "ab" d::foo(); // 使用导入规则,调用命名空间 "b" 中定义的类 "d" 的 "foo" 方法 // 如果类 "bd" 未找到,则尝试自动装载类 "bd" bfoo(); // 调用命名空间 "b" 中的函数 "foo" b::foo(); // 调用全局空间中的类 "b" 的 "foo" 方法 // 如果类 "b" 未找到,则尝试自动装载类 "b" // 当前命名空间中的静态方法或函数 ab::foo(); // 调用命名空间 "aa" 中定义的类 "b" 的 "foo" 方法 // 如果类 "aab" 未找到,则尝试自动装载类 "aab" ab::foo(); // 调用命名空间 "ab" 中定义的类 "b" 的 "foo" 方法 // 如果类 "ab" 未找到,则尝试自动装载类 "ab"
本文地址:
转载随意,但请附上文章地址:-)