PHP命名空间名称中的有效字符是什么?

时间:2016-12-07 21:36:36

标签: php

我的命名空间名称必须遵循哪些规则?

2 个答案:

答案 0 :(得分:8)

  

变量名称遵循与PHP中其他标签相同的规则。一个有效的   变量名以字母或下划线开头,后跟任意名称   字母,数字或下划线的数量。作为正则表达式,   这样表达:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

     

http://php.net/manual/en/language.variables.basics.php

“其他标签”在这里确实引用名称空间以及类和函数名称等。

请注意,PHP对编码没有本地的理解,并将此类标签视为字节数组;大多数Unicode字符串(读取:UTF-8)将满足上述天真的正则表达式:

// yup, works
namespace 漢字;
class 文字 {}

答案 1 :(得分:1)

对于那些在此问题上绊脚石的人:以下正则表达式将验证完整的PHP名称空间(不允许前面或后面的反斜杠)。

^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\\]*[a-zA-Z0-9_\x7f-\xff]$

使用PHP的preg_match时,正则表达式应像这样使用:

preg_match(
  '/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\\\\]*[a-zA-Z0-9_\x7f-\xff]$/', 
  'Vendor\Package\Valid'
);
相关问题