Objekty vnútri tried v OOP v PHP

V triedach je možné používať objekty iných tried. Pozrime sa na príklad. Povedzme, že chceme vytvoriť používateľa s menom a priezviskom, ako aj s mestom, v ktorom žije. Predpokladajme, že máme nasledujúcu triedu pre mesto:

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

Meno, priezvisko a mesto budeme odovzdávať parametrami konštruktora:

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;
    }
  }
?>

Pričom meno a priezvisko budú reťazce, ale mesto - objektom svojej vlastnej samostatnej triedy:

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

Vypíšme meno nášho používateľa:

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

A teraz vypíšme názov mesta nášho používateľa:

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

Daná je nasledujúca trieda:

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;
    }
  }
?>

Zaistite, aby sa do druhého a tretieho parametra odovzdávali objekty samostatných tried.

Задание 2

Vytvorte objekt pracovníka pomocou triedy z predchádzajúcej úlohy.

Задание 3

Vypíšte do konzoly meno, pozíciu a oddelenie pre vytvoreného pracovníka.