29

如何访问 PHP 对象的属性?

$this->$property1另外,使用vs.访问对象的属性有什么区别 $this->property1

当我尝试使用时$this->$property1,出现以下错误:

'PHP:无法访问空属性'。

PHP 关于对象属性的文档有一条评论提到了这一点,但评论并没有真正深入解释。

4

3 回答 3

28
  1. $property1// 具体变量
  2. $this->property1// 具体属性

类的一般用途是没有,"$"否则你调用一个$property1可以取任何值的变量。

例子:

class X {
  public $property1 = 'Value 1';
  public $property2 = 'Value 2';
}
$property1 = 'property2';  //Name of attribute 2
$x_object = new X();
echo $x_object->property1; //Return 'Value 1'
echo $x_object->$property1; //Return 'Value 2'
于 2012-09-24T18:54:48.783 回答
14

$this->property1方法:

使用该对象并获取绑定到该对象的变量 property1

$this->$property1方法:

评估字符串 $property1 并使用结果来获取由 $property1 结果命名的变量绑定到此对象

于 2012-09-24T18:43:56.123 回答
3

property1是一个字符串,$property1而是一个变量。因此,当访问$this->$property1PHP 时会查找名为的变量的内容,$property1并且因为它(可能)不存在,所以它是空的,所以这就是您收到Cannot access empty property错误的原因。

于 2012-09-24T18:46:02.103 回答