PHP名称解析规则
介绍
在PHP代码中,解决命名空间的外观要遵循以下规则-
没有命名空间分隔符(/)的命名空间标识符表示它正在引用当前命名空间。这是一个不合格的名称。
如果它包含如myspace\space1中的分隔符,它将解析为myspace下的子命名空间space1。此类命名是相对命名空间。
完全限定命名空间的名称以\字符开头。例如,\myspace或\myspace\space1。
完全限定的名称解析为绝对命名空间。例如, \myspace\space1解析为 myspace\space1命名空间
如果名称出现在全局命名空间中,则将删除命名空间\前缀。例如,namespace\space1解析为space1。
但是,如果它出现在另一个命名空间中,则将以不同的方式对待。例如,如果namespace\space1在myspace内部,则等效于myspace\space1
根据当前的类/命名空间导入表来翻译限定名称中名称的第一段。
如果没有适用的导入规则,则当前命名空间位于名称之前。
类名称根据类/命名空间导入表进行翻译,函数名称根据函数导入表进行翻译,常量根据常量导入表进行翻译。
对于不合格的名称,如果没有适用的导入规则,并且该名称引用了一个函数或常量,并且代码位于全局命名空间之外,则在运行时解析该名称。首先,它从当前命名空间中查找一个函数,然后尝试查找并调用全局函数。