Obiecte în interiorul claselor în OOP în PHP

În clase se pot folosi obiecte ale altor clase. Să vedem un exemplu. Să presupunem că vrem să creăm un utilizator cu nume și prenume, precum și orașul în care locuiește. Să presupunem că avem următoarea clasă pentru oraș:

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

Vom transmite numele, prenumele și orașul ca parametri ai constructorului:

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

În acest caz, numele și prenumele vor fi șiruri de caractere, iar orașul - un obiect al unei clase separate:

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

Să afișăm numele utilizatorului nostru:

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

Și acum să afișăm numele orașului pentru utilizatorul nostru:

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

Este dată următoarea clasă:

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

Faceți astfel încât în al doilea și al treilea parametru să fie transmise obiecte ale unor clase separate.

Задание 2

Creați un obiect cu un angajat folosind clasa din sarcina anterioară.

Задание 3

Afișați în consolă numele, funcția și departamentul pentru angajatul creat.