php变量名称和大括号

时间:2012-06-15 16:09:58

标签: php

此处提出了类似的问题:PHP variable like $myvar-test is not valid?

我已阅读PHP Userland Naming Guide 在哪里说:

  
    

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

  

我对此感到好奇answer,以及为什么这些变通办法有效:${'0x00'},或者:${'900'}或此${'bad-name'}

我的问题有两部分......为什么这有效?我的问题的第二部分:它们会被视为有效变量还是被认为是别的东西(我不会问它们是否有效,但它们会被归类为什么。)

2 个答案:

答案 0 :(得分:1)

根据此链接:http://cowburn.info/2008/01/12/php-vars-curly-braces/

答案是:

  • 问题1:因为大括号内的内容比$_GLOBALS数组中的键/值对更多,而不是变量的名称。
  • 问题2:它们将成为您脚本的$ Globals的一部分,但您无法使用常规$var表示法访问它们。

答案 1 :(得分:0)

我认为解析器实际上没有验证{}内的表达式。尽管如此,内部PHP使用HashTable来存储变量,因此任何字符串或数字都是有效的。

相关问题