PHP 教程

PHP 教程 PHP 简介 PHP 下载安装 PHP 语法 PHP 注释 PHP 变量 PHP Echo / Print PHP 数据类型 PHP 字符串 PHP 数值 PHP Math PHP 常量 PHP 运算符 PHP If...Else...Elseif PHP Switch PHP 循环 PHP 函数 PHP 数组 PHP 全局变量 PHP 正则表达式

PHP 表单

PHP 表单处理 PHP 表单验证 PHP 表单验证必填字段 PHP 表单验证URL/E-mail PHP 表单验证实例

PHP 高级教程

PHP 日期和时间 PHP Include PHP 文件处理 PHP 文件打开/读取 PHP 文件创建/写入 PHP 文件上传 PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP 回调函数 PHP JSON PHP 异常处理

PHP 面向对象

PHP 什么是 OOP PHP 类和对象 PHP 构造函数 PHP 析构函数 PHP 访问修饰符 PHP 继承 PHP 类常量 PHP 抽象类 PHP 接口 PHP 特征 PHP 静态方法 PHP 静态属性 PHP 命名空间 PHP 可迭代对象

MySQL 数据库

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Where MySQL Order By MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX Poll

PHP 实例

PHP 实例 PHP 编译器 PHP 测验 PHP 练习

PHP 参考手册

PHP 概述 PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Exception PHP Filesystem PHP Filter PHP FTP PHP JSON PHP Keywords PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP Network PHP Output Control PHP RegEx PHP SimpleXML PHP Stream PHP String PHP Variable Handling PHP XML Parser PHP Zip PHP Timezones


PHP 命名空间

PHP 命名空间

命名空间是解决两个不同问题的限定符:

  1. 它们通过对协同工作以执行任务的类进行分组来实现更好的组织
  2. 它们允许将同一名称用于多个类

例如,您可能有一组描述 HTML 表格的类,例如 Table、Row 和 Cell,同时还有另一组描述家具的类,例如 Table、Chair 和 Bed。 命名空间可用于将类组织成两个不同的组,同时还可以防止两个类 Table 和 Table 混淆。


声明命名空间

命名空间在文件开头使用 namespace 关键字声明:

语法

Declare a namespace called Html:

namespace Html;

注释: namespace 声明必须是 PHP 文件中的第一件事。 以下代码无效:

<?php
echo "Hello World!";
namespace Html;
...
?>

此文件中声明的常量、类和函数将属于 Html 命名空间:

实例

在 Html 命名空间中创建一个 Table 类:

<?php
namespace Html;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";
  }
}
$table = new Table();
$table->title = "My table";
$table->numRows = 5;
?>

<!DOCTYPE html>
<html>
<body>

<?php
$table->message();
?>

</body>
</html>
亲自试一试 »

为了进一步组织,可以嵌套命名空间:

语法

在名为 Code 的命名空间中声明名为 Html 的命名空间:

namespace Code\Html;

使用命名空间

任何遵循 namespace 声明的代码都在命名空间内运行,因此可以在没有任何限定符的情况下实例化属于该命名空间的类。 要从命名空间外部访问类,该类需要附加命名空间。

实例

使用 Html 命名空间中的类:

$table = new Html\Table()
$row = new Html\Row();
亲自试一试 »

当同时使用来自同一个命名空间的多个类时,使用 namespace 关键字会更容易:

实例

使用 Html 命名空间中的类而不需要 Html\qualifier:

namespace Html;
$table = new Table();
$row = new Row();
亲自试一试 »

命名空间别名

为命名空间或类提供别名以使其更易于编写会很有用。 这是通过 use 关键字完成的:

实例

给命名空间一个别名:

use Html as H;
$table = new H\Table();
亲自试一试 »

实例

给一个类一个别名:

use Html\Table as T;
$table = new T();
亲自试一试 »