Why this works? I mean, accessing the private variable.
class Test { private $q = 0; public function __construct() { $this->q = 1; } public static function EpicConstruct() { $test = new self(); $test->q = 2; return $test; } } $test = Test::EpicConstruct();