PHP constructor with a parameter

Read all of Constructors and Destructors.

Constructors can take parameters like any other function or method in PHP:

class MyClass {

  public $param;

  public function __construct($param) {
    $this->param = $param;
  }
}

$myClass = new MyClass('foobar');
echo $myClass->param; // foobar

Your example of how you use constructors now won't even compile as you can't reassign $this.

Also, you don't need the curly brackets every time you access or set a property. $object->property works just fine. You only need to use curly-brackets under special circumstances like if you need to evaluate a method $object->{$foo->bar()} = 'test';


If you want to pass an array as a parameter and 'auto' populate your properties:

class MyRecord {
    function __construct($parameters = array()) {
        foreach($parameters as $key => $value) {
            $this->$key = $value;
        }
    }
}

Notice that a constructor is used to create & initialize an object, therefore one may use $this to use / modify the object you're constructing.