PHP 名称解析规则
phpserver side programmingprogramming更新于 2025/8/19 21:22:17
简介
在 PHP 代码中,命名空间的出现遵循以下规则进行解析 −
不带命名空间分隔符 (/) 的命名空间标识符表示它指向当前命名空间。这是一个非限定名称。
如果它包含分隔符,例如 myspace\space1,则它将解析为 myspace 下的子命名空间 space1。这种命名类型称为相对命名空间。
完全限定命名空间的名称以 \ 字符开头。例如,\myspace 或 \myspace\space1。
完全限定名称解析为绝对命名空间。例如, \myspace\space1 解析为 myspace\space1 命名空间。
如果名称出现在全局命名空间中,则 namespace\ 前缀将被删除。例如,namespace\space1 解析为 space1。
但是,如果它出现在另一个命名空间中,则会得到不同的处理。例如,如果 namespace\space1 位于 myspace 内,则等效于 myspace\space1
限定名称中名称的第一部分将根据当前类/命名空间导入表进行翻译。
如果没有适用的导入规则,则当前命名空间将添加到名称的前面。
类名称将根据类/命名空间导入表进行翻译,函数名称将根据函数导入表进行翻译,常量将根据常量导入表进行翻译。
对于非限定名称,如果没有适用的导入规则,且名称引用函数或常量,并且代码位于全局命名空间之外,则该名称将在运行时解析。首先,它会在当前命名空间中查找函数,然后尝试查找并调用全局函数。

