第二十四节:php的命名空间

php的命名空间-把类-函数-变量等放到逻辑子文件夹中去以避免命名冲突

Last Updated on

php命名空间:把类、函数、变量等放到逻辑子文件夹中去,以避免命名冲突。默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样。命名空间通过关键字namespace来声明。随着我们项目规模的扩大,特别是当我们添加更多包含更多代码的文件时,我们需要开始将代码组织到命名空间中。我将在本课程中向你展示如何做到这一点。创建文件夹5.1_namespaces文件夹,把上节课《php入门小项目-验证》代码复制粘贴到本节课使用。

php的命名空间

  1. 我们现在admin也有一个叫index.view.php,index.php,app下面也有index.view.php,index.php,当我们的项目越来越大了,相同命名的文件越来越多;
  2. 当我们使用通用函数名称( generic function names)时,像get()和connect()制造命名冲突的可能性;
  3. 当我们使用第三方库的时候,也有相同的函数名。

上述三种情况我们就用命名空间。可以这么去想象命名空间:每一个函数名称独立出一个文件,每个文件独立一个文件,你必须将每个文件应用于该命名空间。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

php的命名空间-语法要求

命名空间的关键词必须要紧紧跟在php的开始标签后面:

1、在文件file_function.php添加App\Data路径

报错:Fatal error: Call to undefined function get_terms() in D:\xampp\htdocs\PHPFundamentals2019\5.1_namespaces\index.php on line 14

2、找到错报代码地方修改

$items = App\Data\get_terms();

我们用到的地方都要用到App\Data,使用use语句改进:

刷新报错:Fatal error: Call to undefined function get_terms() in D:\xampp\htdocs\PHPFundamentals2019\5.1_namespaces\index.php on line 16

3、改进get_terms()方法

这个时候你会说我们的项目没有必要使用这个命名空间,是的,主要是因为我们的项目不够大,注释namespace代码,恢复原来的代码方便下节课使用。

使用php命名空间如果:

  1. 项目很大;
  2. 团队协助;
  3. 使用第三方库。

建议使用命名空间,防止名称冲突,例如变量命名相同,函数命名相同,等等问题。

下载本节《php的命名空间》

Last modified: 2019年11月14日

前一篇

PHP零基础入门

第二十五节:介绍PHP类

php类:面向对象编程(OOP)是另一种代码结构类是OOP的基础,本课中向你展示PHP类的基础知识.类是变量与作用于这些变量的函数的集合.

...

后一篇

PHP零基础入门

第二十三节:php入门小项目-验证

php入门小项目-验证:我们不希望网络上的随机访问者能够更改我们的词汇表中的数据,我们需要通过身份验证保护我们的管理部分。

...