一尘不染

如何访问以数字开头的对象属性?

php

我正在现有的代码库上工作,并获得了一个对象,该对象的属性以数字开头,可以看到是否调用print_r了该对象。

假设是$Beeblebrox->2ndhead。当我尝试像这样访问它时,出现错误:

解析错误:语法错误,意外的T_LNUMBER,预期的T_STRING或T_VARIABLE或’{‘或’$’

如何获得该属性?


阅读 262

收藏
2020-05-26

共1个答案

一尘不染

那这个呢 :

$Beeblebrox->{'2ndhead'}

实际上,您几乎可以对任何种类的变量执行此操作-即使对于不是类属性的变量也是如此。

例如,您可以考虑一个包含空格的变量名称;以下语法将起作用:

${"My test var"} = 10;
echo ${"My test var"};

即使显然,您将无法执行以下操作:

$My test var = 10;
echo $My test var;

不过,不知道它在内部如何工作。经过一番搜索,我在PHP手册中找不到任何有关此的信息。

我只能{}在这里找到关于变量的内容:变量解析
-但与当前主题不完全相关…

但是这里的文章显示了其他两种可能性,并且比我在此处发布的示例更进一步: PHP变量名称:Curly Brace
Madness

这是另一个提供有关解析方式的其他信息:
PHP语法说明

2020-05-26