phpobjectooppropertiesgetter-setter

How to access a class object property? $this->$property1 gives a "Cannot access empty property" error


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.


Solution

    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'