Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

Erro A Partir Do PHP 7.4, Não Reconhce Outras Classes.

Uso PhpStorm E PHP 8.0, Esta Versão Pede Para Definir A Propriedade Da Variavel, Assim Ficaria private string $titular Ou Seja Não Posso Deixar De Declarar A Propriedade Do Mesmo. Assim Dá Erro Com A Classe Titular E Cpf, Consegui Uma Forma, Mas Ela Não Retornará Absololutamente NADA.

Esse É o Erro!

13 respostas

Não Sei Se Mudou O Modo De Chamada De Classe

Olá Lucas,

Altere o tipo da variável global $titular. de: private string -> $titular; para: private Titular -> $titular;

Talvez funcione.

Abs.

Oi Lucas, beleza?

O erro ocorre por que na sua classe você definiu que a propriedade $titular vai receber uma string, porém, vc está atribuindo a ela um valor do tipo Titular.

Ao invés de declarar private string $titular mude para: private Titular $titular

Bons estudos.

Como Dito Antes Se Fizer Isso Funciona Somente Se Não For Retornar Titular, Mas Como Tenho Um Método Que Vai Retornar Cpf Essa Forma Não Iria Funcionar. O Erro Do CPF!Arquivo banco.php Já Mostra Erro

Isso Pq Não Foi Declarada A Propriedade Da Variavel, E Nesse Caso Não Teria Como Retornar O Cpf, Tentei Varias Formas. Nenhum Sucesso! Ha, No Caso Do Titular O Erro Sai. Mas Depois Aparece Esse Erro. Erro No Método recuperaCpfTitular  E No recuperaNomeTitular

Voce nao esta puxando a classe titular no arquivo Conta.php Voce deve usar um require ou include com o arquivo Titular dentro do arquivo Conta.php

opa blza, cara vc está tipando a sua variável como CPF certo, mas vc não está passando no construtor uma classe CPF e sim uma string contendo o número do CPF, caso vc queira realmente passar uma classe, vc tem que cria-la, instacia-la com a string do cpf e então passa-la passa-la pelo construtor da sua classe de Titular ex:

class Titular {
     private CPF $cpf:
...
}

class CPF {
    private string $cpfNumber;

    public function __constructor(string $cpfNumber)  {
        $this->cpfNumber = $cpfNumber;
    }
    getters and setters...
}

$cpf = new CPF('111.111.111-11');
$titular = new Titular($cpf, ..., ..., ..., ...);

a ideia é a mesma que vc usa estre Titular e Conta, pegou a ideia? espero ter conseguido ajudar

Você não entendeu, a ideia não é instanciar o CPF , e sim passar ela no Titular, ou seja Titular tem o objeto do tipo CPF. O vídeo ele não instancia o CPF e sim o Titular depois a Conta. Mas Desse Jeito Funcionaria, Mas não resolve meu problema.

Como pode se ver, não retorna string CPF.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Opa, blza? então Lucas, no momento que vc "tipou" a variável como um objeto, no seu caso o objeto do tipo CPF, e inclusive no construtor da sua classe vc tb tipa que vc tem que receber um objeto do tipo CPF, então vc é obrigado a fornecer esse objeto do tipo especificado. O tipo CPF não existe no PHP, você precisa cria-lo, e vc faz isso atravéz de uma classe que vc nomeia com o tipo que vc quer criar. caso vc não queira criar a classe CPF então vc não deve tipar a variável como CPF nem tipar o recebimento do atributo no construtor como sendo CPF, coloque string como tipagem para ambos, pois é exatamente isso que vc está passando para o construtor da sua classe, uma string "987.987.987-98"

ou senão eu realmente não consegui entender o que vc quer fazer ali :)

mas boa sorte e bons estudos!

Não, eu criei a classe CPF por isso eu tipei ela como CPF, não teria feito isso se não tivesse criado a classe.

solução!

Na verdade consegui resolver o erro, reformulei todo o código e encontrei o problema. Era o retorno da string que não foi passado corretamente por isso ficou errado, agradeço pela ajuda de todos. Obrigado!

Pessoal bom dia.... tudas as vezes que tento executar o programa através do var_dump no próprio terminar do PHP, dá erro se sintaxe. a versão que tenho do PHP é a 7.4.... Não estou conseguindo acompanhar o professor e isso está tirando minha paz... quando clico com o mouse direito em Conta, por exemplo, ele abre a aba normalmente, mas quando clico em Run (Conta.PHP), o programa abre outra aba Edit Configuration, e lá embaixo aparece mensagem Error. There is no default interpreter in this project Press "Fix" to edit your project configuration.... Alguém por gentileza pode me ajudar.....? Muito Grato.