我正在现有的代码库上工作,并获得了一个对象,该对象的属性以数字开头,可以看到是否调用print_r了该对象。
print_r
假设是$Beeblebrox->2ndhead。当我尝试像这样访问它时,出现错误:
$Beeblebrox->2ndhead
解析错误:语法错误,意外的T_LNUMBER,预期的T_STRING或T_VARIABLE或’{‘或’$’
如何获得该属性?
那这个呢 :
$Beeblebrox->{'2ndhead'}
实际上,您几乎可以对任何种类的变量执行此操作-即使对于不是类属性的变量也是如此。
例如,您可以考虑一个包含空格的变量名称;以下语法将起作用:
${"My test var"} = 10; echo ${"My test var"};
即使显然,您将无法执行以下操作:
$My test var = 10; echo $My test var;
不过,不知道它在内部如何工作。经过一番搜索,我在PHP手册中找不到任何有关此的信息。
我只能{}在这里找到关于变量的内容:变量解析 -但与当前主题不完全相关…
{}
但是这里的文章显示了其他两种可能性,并且比我在此处发布的示例更进一步: PHP变量名称:Curly Brace Madness
这是另一个提供有关解析方式的其他信息: PHP语法说明