Oggetti all'interno di classi in OOP in PHP

Nelle classi è possibile utilizzare oggetti di altre classi. Vediamo con un esempio. Supponiamo di voler creare un utente con nome e cognome, e anche la città in cui vive. Supponiamo di avere la seguente classe per la città:

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

Passeremo nome, cognome e città come parametri del costruttore:

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

In questo caso nome e cognome saranno stringhe, mentre la città sarà un oggetto della sua classe separata:

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

Stampiamo il nome del nostro utente:

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

E ora stampiamo il nome della città del nostro utente:

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

Data la seguente classe:

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

Fate in modo che nel secondo e terzo parametro vengano passati oggetti di classi separate.

Задание 2

Create un oggetto dipendente utilizzando la classe del problema precedente.

Задание 3

Stampate nella console il nome, la posizione lavorativa e il dipartimento per il dipendente creato.