Objektumok osztályokon belül OOP-ban PHP-ben

Osztályokban más osztályok objektumait használhatjuk. Nézzük meg egy példán. Tegyük fel, hogy szeretnénk létrehozni egy felhasználót keresztnévvel és vezetéknévvel, valamint a várossal, ahol él. Tegyük fel, hogy van a következő osztályunk a városhoz:

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

A keresztnevet, vezetéknevet és várost a konstruktor paramétereiként adjuk át:

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

Ebben az esetben a keresztnév és vezetéknév sztringek lesznek, de a város - a saját külön osztályának objektuma:

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

Írjuk ki a felhasználónk nevét:

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

Most pedig írjuk ki a város nevét a felhasználónknak:

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

Adott a következő osztály:

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

Állítsa be úgy, hogy a második és harmadik paraméterbe külön osztályok objektumai kerüljenek átadásra.

Задание 2

Hozzon létre egy objektumot munkavállalóval az előző feladat osztálya segítségével.

Задание 3

Írja ki a konzolra a létrehozott munkavállaló nevét, beosztását és osztályát.