na przykład masz
class TDriver {
private $name;
public function GetName(){
return $this->name;
}
public function SetName($name){
$this->name=$name;
}
}
class TWehicle {
private $driver;
public $name;
public function __construct(){
$this->driver = new TDriver;
}
public function GetDriver(){
return $this->$driver;
}
}
$abc = new TWehicle;
$abc->GetDriver()->SetName('Mr. Hzmzp');
echo 'Kierowcą tego pojazdu jest '.$abc->GetDriver()->GetName();
chodzi o to że do zmiennej $driver w klasie TWehicle przypisano obiekt TDriver, który ma w sobie 2 funkcje GetName i SetName.
Dla $abc które jest klasą TWehicle chcemy przypisać imię kierowcy $abc->GetDriver()->SetName('Mr. Hzmzp'); funkcja GetDriver() z TWehicle zwraca nam obiekt TDriver, który jest przypisany do $driver, więc mamy dostęp do funkcji SetName (klasy TDriver) przez funkcję GetDriver.
Nie wiem czy ci to jasno opisałem :D coś niewyraźny jestem dziś...