You can create read-only object variables by using the “private” keyword and the __get() and __set() magic methods like this:
<?php class classWithReadOnlyVar { private $readOnlyVar; public function __get($varName) { return $this->$varName; } public function __set($varName,$varValue) { } }
So now classWithReadOnlyVar::readOnlyVar is only settable from inside the class, but you can read it from anywhere. For example, if you add the above constructor to the code above:
public function __construct() { $this->readOnlyVar = "foo"; }
Then the following code:
$test = new classWithReadOnlyVar(); echo $test->readOnlyVar; $test->readOnlyVar = "bar"; echo $test->readOnlyVar;
has this output:
foo foo