命名空间是解决两个不同问题的限定符:
例如,您可能有一组描述 HTML 表格的类,例如 Table、Row 和 Cell,同时还有另一组描述家具的类,例如 Table、Chair 和 Bed。命名空间可用于将类组织为两个不同的组,同时还可以防止两个类 Table 和 Table 混淆。
命名空间是在文件的开头声明的namespace
关键字:
声明一个名为 Html 的命名空间:
<?php
namespace Html;
?>
笔记:Anamespace
声明必须是 PHP 文件中的第一部分。以下代码将无效:
<?php
echo "Hello World!";
namespace 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 的命名空间:
<?php
namespace Code\Html;
?>
任何跟随 a 的代码namespace
声明是在命名空间内操作的,因此属于该命名空间的类可以在没有任何限定符的情况下实例化。要从命名空间外部访问类,该类需要附加命名空间。
当同时使用来自同一命名空间的许多类时,使用namespace
关键字:
使用 Html 命名空间中的类,无需 Html\qualifier:
<?php
namespace Html;
$table = new Table();
$row = new Row();
?>
亲自试一试 »
为命名空间或类提供别名以使其更易于编写可能很有用。这是通过use
关键字:
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!