PHP 命名空间

PHP 命名空间解决了可能发生的冲突的问题。

一般规则

  • 文件路径 + 类名(文件名与类名保持一致)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
namespace A\B;  // 定义命名空间,在所有代码之前声明,除了 declare()

/**
* use 关键字导入命名空间
* namespace 与 use 之间空一行
*/

/**
* @since 7.0 分组命名空间,7.2 允许尾部逗号
*/

use Foo\Bar\{
Foo,
Bar,
Baz,
};

use Error; // 全局空间

use Foo\Bar as BarBase; // 别名

use function C\D\functionName as func;

use const C\D\CONSTANT;

function a()
{

}

class A
{

}

// PHP 支持两种抽象的访问当前命名空间内部元素的方法,__NAMESPACE__ 魔术常量和 namespace 关键字。

namespace\a();

$my_class = __NAMESPACE__ . '\\A';

$obj = new $my_class();

// 在命名空间内,用一个变量来动态调用类,必须加上命名空间。

// $my_class_error = 'A';

// $obj = new $my_class_error();

$f = \fopen(); // 调用全局的函数
0%