What is the syntax for accessing PHP object properties? [closed]

自闭症网瘾萝莉.ら 提交于 2019-11-26 18:31:15

问题


How do you access a PHP object's properties?

Also, what is the difference between accessing an object's property with $this->$property1 vs. $this->property1?

When I try to use $this->$property1 I get the following error:

'PHP: Cannot access empty property'.

PHP's documentation on object properties has one comment which mentions this, but the comment doesn't really explain in depth.


回答1:


  1. $property1 // specific variable
  2. $this->property1 // specific attribute

The general use on classes is without "$" otherwise you are calling a variable called $property1 that could take any value.

Example:

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:


$this->property1 means:

use the object and get the variable property1 bound to this object

$this->$property1 means:

evaluate the string $property1 and use the result to get the variable named by $property1 result bound to this object




回答3:


property1 is a string while $property1 is a variable. So when accessing $this->$property1 PHP looks for contents of the variable named $property1 and because it (probably) doesn't exist it's empty so that's why you get the Cannot access empty property error.



来源:https://stackoverflow.com/questions/12570899/what-is-the-syntax-for-accessing-php-object-properties

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!