Boa tarde, estou com uma dúvida, sobre como definir uma propriedade de um objeto composto, vou tentar reproduzir um exemplo:
Pessoa.php
<?php
class Pessoa{
private NomeCompleto $nomeCompleto
public function __construct(NomeCompleto $nomeCompleto){
$this->nomeCompleto = $nomeComopleto;
}
public function __get($atributo){
return $this->$atributo ;
}
public function __set($atributo, $valor){
$this->$atributo = $valor;
}
}
NomeCompleto.php
<?php
class NomeCompleto{
private string $nome;
private ?string $sobrenome;
public function __construct($nome, $sobrenome){
$this->nome = $nome;
$this->sobrenome = $sobrenome;
}
public function __get($atributo){
return $this->$atributo ;
}
public function __set($atributo, $valor){
$this->$atributo = $valor;
}
}
Sem se preocupar com a funcionalidade do exemplo, digamos que a classe Pessoa possua não só uma propriedade ($nomeCompleto) e sim uma série, que devem ser uma instancia de NomeCompleto. E que eu queira alterar o $sobrenome de todos os atributos, eu tentei da seguinte forma:
teste.php
<?php
$pessoa = new Pessoa(new NomeCompleto("João", NULL));
foreach($pessoa as $chave => $valor){
$valor->sobrenome = "Silva";
}
E assim também:
teste2.php
<?php
$pessoa = new Pessoa(new NomeCompleto("João", NULL));
foreach($pessoa as $chave => $valor){
$chave->sobrenome = "Silva";
}
e em ambos não deu certo, o que está errado?