8.2.1 定义语法
最后更新于:2022-04-02 05:19:34
### 8.2.1 定义语法
命名空间通过关键字namespace 来声明,如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间,除了declare关键字以外,也就是说除declare之外任何代码都不能在namespace之前声明。另外,命名空间并没有文件限制,可以在多个文件中声明同一个命名空间,也可以在同一文件中声明多个命名空间。
```php
namespace com\aa;
const MY_CONST = 1234;
function my_func(){ /* ... */ }
class my_class { /* ... */ }
```
另外也可以通过{}将类、函数、常量封装在一个命名空间下:
```php
namespace com\aa{
const MY_CONST = 1234;
function my_func(){ /* ... */ }
class my_class { /* ... */ }
}
```
但是同一个文件中这两种定义方式不能混用,下面这样的定义将是非法的:
```php
namespace com\aa{
/* ... */
}
namespace com\bb;
/* ... */
```
如果没有定义任何命名空间,所有的类、函数和常量的定义都是在全局空间,与 PHP 引入命名空间概念前一样。
';