PHP对象访问语法问题与$

时间:2010-06-09 12:06:53

标签: php syntax

我一直在寻找这个答案时遇到了麻烦,因为我不太清楚如何用它来表达。我是PHP的新手,仍然站稳脚跟。我正在编写一个页面,其中包含一个具有属性名称的类。当我最初编写页面时没有类,所以我只有一个名为$name的变量。当我把它封装在一个类中时,我意外地将它改为$myClass->$name。它让我知道我需要的语法是$myClass->name。它花了这么长时间的原因是我一直得到的错误是“尝试访问一个null属性”或者沿着那些方向的东西。该错误让我相信这是一个数据填充错误。

我的问题是$myClass->$name是否有正确的含义?换句话说,是否有时间使用它以及它不会产生语法错误的原因?如果是这样,那段代码的语义是什么?如果有效,我什么时候使用它?如果它无效,是否有理由不创建语法错误?

3 个答案:

答案 0 :(得分:3)

$name = "bar";
echo $myClass->$name; //the same as $myClass->bar

我同意错误消息不是很有帮助。

答案 1 :(得分:2)

了解variable variables

  

也可以使用变量属性名访问类属性。变量属性名称将在进行调用的范围内解析。例如,如果您有一个表达式,例如$ foo->$bar,那么将检查$bar的本地范围,其值将用作属性的名称 $foo。如果$bar是数组访问权限,也是如此。

答案 2 :(得分:0)

$myClass->$name是“可变属性名称”。它以字符串形式访问名称在变量$name中的属性。您收到“null属性”错误的原因是您没有名为$name的变量(或null