Bom dia, estou em dúvida sobre um erro que aconteceu comigo fazendo os códigos:
Eu declarei como string a variável $titular, só que quando criei a função recuperaTitular na parte do $this->titular->recuperaNome(); ele da erro dizendo que a Conta::$titular deve ser string, não entendi o porque que aconteceu isso pois era pra ser string, ao remover a declaração string na variável $titular ela funcionou normalmente, queria entender o porque aconteceu isso.
Eu sei que não estava na aula essas declarações, mas resolvi fazer por boas práticas e/ou segurança, mas fiquei confuso o porque aconteceu esse erro.
class Conta
{
//removendo string do private $titular funciona normalmente
private string $titular;
private float $saldo;
private static int $numeroDeContas = 0;
public function __construct(Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
Conta::$numeroDeContas++;
}
//(...)
public function recuperaTitular(): string
{
return $this->titular->recuperaNome();
}
}