Objetos dentro de classes em OOP em PHP

Em classes, podemos usar objetos de outras classes. Vamos ver um exemplo. Suponha que queremos criar um usuário com nome e sobrenome, e também com a cidade onde ele mora. Suponha que temos a seguinte classe para a cidade:

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

Vamos passar o nome, sobrenome e cidade como parâmetros do construtor:

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

Neste caso, o nome e o sobrenome serão strings, mas a cidade - um objeto de sua própria classe separada:

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

Vamos exibir o nome do nosso usuário:

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

E agora vamos exibir o nome da cidade do nosso usuário:

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

Dada a seguinte 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;
    }
  }
?>

Faça com que no segundo e terceiro parâmetros sejam passados objetos de classes separadas.

Задание 2

Crie um objeto de funcionário usando a classe da tarefa anterior.

Задание 3

Exiba no console o nome, cargo e departamento do funcionário criado.