又称命名空间,是一个比较宽泛的概念。什么是命名空间?广义上可以理解为一种用来封装各种项目的方法。我看书上的介绍,不是太好懂,不过PHP官方的介绍还是比较容易理解的。摘录如下:
这个抽象概念在很多地方都可以看到。例如,在操作系统中,目录用于对相关文件进行分组。对于目录中的文件来说,它充当着命名空间的角色。例如,文件
foo.txt 可以同时存在于 /home/greg 和 /home/other,但是同一个目录中不能有两个 foo.txt。
另外,在访问目录 /home/greg 之外的 foo.txt 文件时,我们必须在文件名前加上目录名和目录分隔符,才能得到
/home/greg/foo.txt。这个原则作为命名空间的概念应用于编程领域。
在 PHP 中,命名空间用于解决在编写库或应用程序时创建可重用代码(例如类或函数)时的两类问题:
用户编写的代码与 PHP 内部类/函数/常量或第三方类/函数/常量之间存在名称冲突。为非常长的标识符名称(通常为缓解第一类问题而定义)创建别名(或短名称),以提高源代码的可读性。
PHP 命名空间提供了一种将相关类、函数和常量组合在一起的方法。以下是说明 PHP 命名空间语法的示例:
namespace my\name; // 参考下面"定义命名空间" 小节
class MyClass {}
function myfunction() {}
const MYCONST = 1;
$a = new MyClass;
$c = new \my\name\MyClass; // 参考 "全局空间" 小节
$a = strlen('hi'); // 参考 "使用命名空间:后备全局函数/常量" 小节
$d = namespace\MYCONST; // 参考 "namespace操作符和__NAMESPACE__常量” 小节
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // 参考 "命名空间和动态语言特征" 小节
?>
注意:
PHP 或 php 命名空间以及以这些名称开头的命名空间(例如 PHP\)保留供语言核心使用,不应在用户空间代码中使用。
定义命名空间
命名空间使用关键字声明,如果文件包含命名空间,则必须在所有其他代码之前声明。除了前面学过的标量类型的声明(因为标量类型需要在所有字符之前声明,也就是除了标量类型之外,命名空间都写在第一条语句中)
<html>
>
namespace Myname; //这样是错误的,命名空间必须是程序脚本的第一条语句
?>
</html>
另外,与PHP其他语言特性不同的是,同一个命名空间可以在多个文件中定义,这样就可以将同一个命名空间的内容拆分存放在不同的文件中。
定义子命名空间
与目录和文件的关系类似,PHP 命名空间也允许指定分层的命名空间名称。因此,命名空间名称可以按层次结构定义:
namespace my\test\xuexi;
?>
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。