使用特殊字符的PHP变量/函数/类名


PHP variable / function / class names using special characters

我知道下划线_是命名变量/函数/类等的可接受字符。但我想知道是否还有其他特殊字符可以使用。我测试了一些,但没有运气,很长一段时间以来我一直认为没有,但我想我会看看是否有其他人知道。这主要是为了美观,但我认为在与其他开发人员合作定义值类型等时,特殊的字符命名约定会很有用。

如果检查docs on variables,它会显示:

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

但基本上,人们已经同意只使用a-zA-Z0-9_,而不使用"花哨"的名称,因为它们可能会根据使用的编码而中断。

因此,可以有一个名为$aöäüÖÄ的变量,但如果使用错误的编码保存该变量,则可能会遇到问题


顺便说一句,的功能也是如此

所以

function fooööö($aà) { echo $aà; }
fooööö("hi"); // will just echo 'hi'

(至少一开始)会成功的。


同时查看:

Exotic names for methods, constants, variables and fields - Bug or Feature?

就这个问题进行一些讨论。

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

http://www.php.net/manual/en/functions.user-defined.php

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

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

另请参阅Userland命名指南:http://www.php.net/manual/en/userlandnaming.php

您可以在PHP手册中找到要查找的信息。知道,已经回答:

函数名遵循与PHP中其他标签相同的规则。有效的函数名以字母或下划线开头,后跟任意数量的字母、数字或下划线。

函数作为正则表达式:[a-zA-Z_'x7f-'xff][a-zA-Z0-9_'x7f-'xff]*

手册中的信息没有反映命名空间(有些人可能会将其视为函数名称的一部分)。对于某些标识符,PHP手册中的信息并不精确。请参阅PHP语法规范表达式了解各种元素以及它们的PHP手册链接。

有效的{variable|function}名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。

http://www.php.net/manual/en/functions.user-defined.phphttp://www.php.net/manual/en/language.variables.basics.php

如果您想通过组合元素(例如函数和数据库列或表名)来构造名称,可以使用双下划线作为分隔符:

social_security_number__check(),
musical_instrument__tune(),
vehicle__insert()

check__social_security_number(),
tune__musical_instrument(),
insert__vehicle()