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
class City {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
?>
Vamos passar o nome, sobrenome e cidade como parâmetros do construtor:
<?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
$city = new City('luis');
$user = new User('john', 'smit', $city);
?>
Vamos exibir o nome do nosso usuário:
<?php
echo $user->name;
?>
E agora vamos exibir o nome da cidade do nosso usuário:
<?php
echo $user->city->name;
?>
Dada a seguinte classe:
<?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.
Crie um objeto de funcionário usando a classe da tarefa anterior.
Exiba no console o nome, cargo e departamento do funcionário criado.