如何访问PHP对象的属性?
另外,访问对象的属性有什么区别
$this->$property1
与$this->property1
?
当我尝试使用$this->$property1
时,我收到以下错误:
'PHP:无法访问空属性'。
对象属性上的PHP documentation有一条注释提到了这一点,但评论并没有真正深入解释。
答案 0 :(得分:11)
$this->property1
表示:
使用该对象并获取绑定到此对象的变量property1
$this->$property1
表示:
计算字符串$ property1并使用结果获取由$ property1命名的变量绑定到此对象的结果
答案 1 :(得分:10)
$property1
//特定变量$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'
答案 2 :(得分:3)
property1
是一个字符串,而$property1
是一个变量。因此,当访问$this->$property1
时,PHP会查找名为$property1
的变量的内容,并且因为它(可能)不存在,所以它是空的,这就是为什么会出现Cannot access empty property
错误。