如何访问 PHP 对象的属性?
此外,访问对象的属性与
$this->$property1
与 $this->property1
?
当我尝试使用
$this->$property1
时,出现以下错误:
“PHP:无法访问空属性”。
PHP 的 documentation 关于对象属性的一个注释提到了这一点,但该注释并没有真正深入解释。
$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'
$this->property1
的意思是:
使用该对象并获取绑定到该对象的变量property1
$this->$property1
的意思是:
计算字符串 $property1 并使用结果来获取绑定到该对象的 $property1 结果命名的变量
property1
是一个字符串,而 $property1
是一个变量。因此,当访问 $this->$property1
时,PHP 会查找名为 $property1
的变量的内容,并且因为它(可能)不存在,所以它是空的,所以这就是您收到 Cannot access empty property
错误的原因。