Αντικείμενα μέσα σε κλάσεις στην OOP σε 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

Εμφανίστε στην κονσόλα το όνομα, τη θέση εργασίας και το τμήμα για τον δημιουργημένο εργαζόμενο.