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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software