Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

variavel $filme ainda retorna um array

Segui o passo a passo da aula para a variavel $filme retornar objeto, fiz exatamente como o instrutor, mas mesmo com ajuda da IA não consegui localizar o problema, ainda retorna um array e o uso das setas no var_dump retorna:

Attempt to read property "nome" on array in C:\Users\Phill\Downloads\3730-php-intro-curso-2 (1)\screen-match\screen-match\index.php on line 54
NULL

1 resposta
solução!

Olá, Filipe! Como vai?

Você está enfrentando um problema ao tentar retornar um objeto em vez de um array na sua variável $filme e ele acusa Attempt to read property "nome" como NULL o que significa um problema de leitura. Com base nisso, listei alguns pontos que podem ajudar a resolver essa questão.

  1. Verifique a Classe Filme: certifique-se de que a classe Filme está corretamente definida no arquivo Filme.php, com todas as propriedades declaradas como públicas. Algo assim:

    <?php
    
    class Filme {
        public string $nome;
        public int $anoLancamento;
        public string $genero;
        public float $nota;
    }
    
  2. Função criaFilme(): na função criaFilme(), assegure-se de que você está criando e retornando um objeto da classe Filme. Veja um exemplo:

    function criaFilme(string $nome, int $anoLancamento, float $nota, string $genero): Filme
    {
        $filme = new Filme();
        $filme->nome = $nome;
        $filme->anoLancamento = $anoLancamento;
        $filme->genero = $genero;
        $filme->nota = $nota;
    
        return $filme;
    }
    
  3. Uso do Operador de Seta: no seu arquivo index.php, ao acessar as propriedades do objeto $filme, use o operador -> em vez de colchetes. Por exemplo:

    echo $filme->nome;
    

Caso não resolva o seu problema, peço que compartilhe todo o seu projeto para que eu possa realizar testes para identificar a causa do problema.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.