主要作用:解决命名冲突问题
命名空间是指人为的将内存分隔, 让不同内存区域的同名结构共存。
文件夹对于文件夹内的文件来说就充当了命名空间的角色,两个文件名相同的文件不同放在同一个文件夹下,但是可以放在不同的文件夹下
1. 命名空间第一次声明必须在所有代码之前
如果一个文件中包含命名空间, 必须在其他所有代码之前声明命名空间
但是 PHP7 严格模式(declare)除外, 严格模式声明可以放在声明命名空间之前
declare(strict_types = 1);
2. 单个文件中可以定义多个命名空间
namespace abc;
function var_dump()
{
echo 'this is abc';
}
namespace def;
function var_dump()
{
echo 'this is def';
}
var_dump();//this is def
3. 使用大括号在单个文件中定义多个命名空间
特别注意 : 使用该方式的文件在 {}
之外可能不存在任何代码
namespace abc
{
function var_dump()
{
echo '123';
}
}
namespace def
{
function var_dump()
{
echo '456';
}
}
系统关键字不能作为空间名称, 如: list、echo
等
以字母或下划线开头, 有字母、下划线、数字组成