Објекти унутар класа у ООП у PHP-у

У класама можемо користити објекте других класа. Хајде да погледамо на примеру. Претпоставимо да желимо да направимо корисника са именом и презименом, као и градом у коме живи. Претпоставимо да имамо следећу класу за град:

php<?php
  class City {
    public $name;
    
    public function __construct($name) {
      $this->name = $name;
    }
  }
?>

Име, презиме и град проследићемо као параметре конструктора:

php<?php
  class User {
    public $name;
    public $surn;
    public $city;
    
    public function __construct($name, $surn, $city) {
      $this->name = $name;
      $this->surn = $surn;
      $this->city = $city;
    }
  }
?>

При томе ће име и презиме бити ниске, али град - објекат своје посебне класе:

php<?php
  $city = new City('luis');
  $user = new User('john', 'smit', $city);
?>

Хајде да испишемо име нашег корисника:

php<?php
  echo $user->name;
?>

А сада испишимо назив града за нашег корисника:

php<?php
  echo $user->city->name;
?>
Задание 1

Дата је следећа класа:

php<?php
  class Employee {
    public $name;
    public $position;
    public $department;
  
    public function __construct($name, $position, $department) {
      $this->name = $name;
      $this->position = $position;
      $this->department = $department;
    }
  }
?>

Направите тако да се у други и трећи параметар прослеђују објекти посебних класа.

Задание 2

Креирајте објекат запосленог користећи класу из претходног задатка.

Задание 3

Испишите у конзолу име, позицију и одељење за креираног запосленог.