21xrx.com
2022-12-10 17:47:29 Saturday
登录
文章检索 我的文章 写文章
PHP命名空间
2021-07-22 20:18:06 深夜i     --     --
P H P


PHP命名空间

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

  1. 允许通过将类分组来更好地组织
  2. 允许对多个类使用相同的名称

例如,您可能有一组描述HTML表的类,例如表,行和 表格同时还有另一组类来描述家具,如表, 椅子和床。 名称空间可用于将类组织成两种不同 群组也在防止两个类表和表中被混合起来。


声明名称空间

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

声明名为HTML的命名空间:

namespace Html;

注意:命名空间声明必须是PHP文件中的开头。 以下代码 将无效:

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

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

在HTML命名空间中创建一个表类:

<?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>

对于其他组织,可以拥有嵌套的命名空间:

在命名空间内声明名称名称的命名空间称为代码:

namespace Code\Html;


使用名称空间

任何遵循命名空间声明的代码正在命名空间内运行,所以 没有任何限定符,都可以实例化属于命名空间的类。 访问 来自名称空间外的类,该类需要具有附加的命名空间 。

使用HTML命名空间中的类:

$table = new Html\Table()
$row = new Html\Row();

 

当同一名称空间中的许多类都在同时使用时,它是 更容易使用namespace关键字:

使用HTML命名空间中的类而无需HTML \限定符:

namespace Html;
$table = new Table();
$row = new Row();

 


命名空间别名

为命名空间或类是一个别名来使其更容易写入它。 这是 完成使用关键字:

给名称空间别名:

 

use Html as H;
$table = new H\Table();

给一个别名:

use Html\Table as T;
$table = new T();

 

 

 

  
  
下一篇: php iterables.

评论区

{{item['qq_nickname']}}
()
回复
回复