public function printValue() { print "The Value is: {$this->a}\n"; } public function changeValue($val, $obj = null) { if (is_null($obj)) { $this->a = $val; } else { //$obj->a = $val; $obj->b = $val; } } public function getValue() { return $this->a; } } class mySubClass extends myClass { private $b; } $obj_one = new myClass(); $obj_two = new mySubClass(); $obj_one->changeValue(20, $obj_two); $obj_two->changeValue($obj_two->getValue(), $obj_one); $obj_two->printValue(); $obj_one->printValue(); /* FATAL ERROR: Cannot access private property */