Boa noite!
Ao puxar o "::construct" ocorre o seguinte erro:
Ele não esta aceitando o tipo do elemento ser 'CPF' e só quer aceitar o tipo string quando chamo o CPF.
Os meus códigos estão iguais a da video aula:
Vi linha por linha conforme a aula, mas não vejo como resolver! @.@
<?php
Class CPF {
private string $numero;
public function __construct( string $numero) {
$numero - filter_var($numero, FILTER_VALIDATE_REGEXP, [
"options"=> [
"regexp"=> '/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$/'
]
]);
if ($numero === false) {
echo 'CPF Inválido';
exit();
}
$this->numero = $numero;
}
public function getNumero(): string {
return $this->numero;
}
}
<?php
Class Titular extends Pessoa {
private $endereco;
public function __construct(CPF $cpf, string $nome, Endereco $endereco) {
parent::__construct($cpf, $nome);
$this->endereco = $endereco;
}
public function recuperaEndereco (): Endereco {
return $this->endereco;
}
}
<?php
class Funcionario extends Pessoa {
private string $cargo;
public function __construct(string $nome, CPF $cpf, string $cargo) {
parent::__construct($nome, $cpf);
$this->cargo = $cargo;
}
public function getCargo() : string {
return $this->cargo;
}
}
<?php
class Pessoa {
public string $nome;
public string $cpf;
public function __construct(string $nome, string $cpf){
$this->validaNomeTitular($nome);
$this->nome = $nome;
$this->cpf = $cpf;
}
public function getNome (): string {
return $this->nome;
}
public function getcpf (): string {
return $this->cpf;
}
public function validaNomeTitular (string $nomeTitular) {
if (strlen($nomeTitular) < 5) {
echo "O nome deve ter mais de 5 caracteres!";
exit();
}
}
}