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
class City {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
?>
Vom transmite numele, prenumele și orașul ca parametri ai constructorului:
<?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
$city = new City('luis');
$user = new User('john', 'smit', $city);
?>
Să afișăm numele utilizatorului nostru:
<?php
echo $user->name;
?>
Și acum să afișăm numele orașului pentru utilizatorul nostru:
<?php
echo $user->city->name;
?>
Este dată următoarea clasă:
<?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.
Creați un obiect cu un angajat folosind clasa din sarcina anterioară.
Afișați în consolă numele, funcția și departamentul pentru angajatul creat.