【问题标题】:PHP variable / function / class names using special characters使用特殊字符的 PHP 变量/函数/类名
【发布时间】:2011-06-15 18:08:01
【问题描述】:

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

【问题讨论】:

  • 谢谢!这些都是非常翔实的答案!

标签: php function syntax label


【解决方案1】:

如果您查看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?

关于这个主题的一些讨论。

【讨论】:

    【解决方案2】:

    函数名称遵循与 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

    另请参阅用户空间命名指南:http://www.php.net/manual/en/userlandnaming.php

    【讨论】:

      【解决方案3】:

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

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

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

      手册中的信息不反映命名空间(有些人可能将它们视为函数名称的一部分)。并且对于某些标识符,PHP 手册中的信息并不准确。请参阅PHP Syntax Regulary Expressed 了解各种元素以及它们的 PHP 手册链接。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          social_security_number__check(),
          musical_instrument__tune(),
          vehicle__insert()
          

          check__social_security_number(),
          tune__musical_instrument(),
          insert__vehicle()
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-05-27
            • 1970-01-01
            • 1970-01-01
            • 2020-11-28
            • 1970-01-01
            • 2014-08-06
            • 1970-01-01
            • 2012-01-27
            相关资源
            最近更新 更多