<?php
class Carro implements IteratorAggregate
{
private Peca $motor;
private Peca $pneus;
private Peca $amortecedor;
public function __construct(
Peca $motor,
Peca $pneus,
Peca $amortecedor
) {
$this->motor = $motor;
$this->pneus = $pneus;
$this->amortecedor = $amortecedor;
}
public function __get($atributo)
{
return $this->$atributo;
}
public function __set($atributo, $valor)
{
$this->$atributo = $valor;
}
public function getIterator()
{
return new \ArrayIterator([
$this->motor,
$this->pneus,
$this->amortecedor,
]);
}
}
class Peca
{
private string $marca;
private string $modelo;
private float $preco;
public function __construct(
?string $marca,
string $modelo,
float $preco
) {
$this->marca = $marca;
$this->modelo = $modelo;
$this->preco = $preco;
}
public function __get($atributo)
{
return $this->$atributo ;
}
public function __set($atributo, $valor)
{
$this->$atributo = $valor;
}
}
$carro = new Carro(
new Peca('Teste', "1.8", 15000.00),
new Peca("Pirelli", "P7", 500.00),
new Peca("Cofap", "ar", 1000.00)
);
foreach($carro as $peca){
$peca->marca = "VW";
}
var_dump($carro);
preferences:
126.18 ms | 404 KiB | 5 Q