Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fernandoanael

Não consigo usar herança nem traits.

Recommended Posts

Olá pessoal, tudo bem? Tenho aprendido sobre herança e vi também sobre traits.

Eu entendi tudo na teoria mas na hora de fazer alguns exemplos do livro pra praticar, sempre dá um erro informando que a classe a ser herdada ou a trait não foi encontrada. Eu não entendo o porque do erro já que a Classe mãe e a trait estão na mesma pasta. E isso ocorre mesmo quando tento rodar os exemplos do livro da Novatec que é o livro que estou usando pra aprender PHP.

Se alguém puder me dar uma luz, agradeceria muito!!!

Se tiver qualquer outro erro, mesmo que não influenciando no erro principal, podem ajudar, estou aprendendo, toda ajuda é ouro!

Um exemplo simples que eu criei pra mostrar que simplesmente não consigo herdar nada, o erro acontece também quando tento usar traits.

Arquivo: mae.php

<?php
class mae
{
public $palavra = "Fala Galera!!!";
function imprimePalavra()
{
echo $palavra;
}
}
?>

Arquivo: filha.php

<?php
class filha extends mae {
function imprimePalavra()
{
parent::imprimePalavra();
}
}
?>

Arquivo: teste.php

<?php
include 'filha.php';
$teste = new filha();
$teste->imprimePalavra();
?>

ERRO: Fatal error: Class 'mae' not found in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\Aprendendo\classes\filha.php on line 2.

nota: Os 3 arquivos estão na mesma pasta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo mudando o Arquivo: test.php para:

<?php

include "mae.php";
include 'filha.php';
$teste = new filha();
$teste->imprimePalavra();
?>

ou mudando o arquivo: filha.php para:

<?php
class filha extends mae {

require_once"mae.php";
function imprimePalavra()
{
parent::imprimePalavra();
}
}
?>

 

O erro continua acontecendo...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

$palavra; não foi iniciada dentro do método.

deveria ser:

class mae
{
    public $palavra = "Fala Galera!!!";
    function imprimePalavra()
    {
      echo $this->palavra;   
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo deve ser incluído antes de ser referenciado, ou seja:

 

<?php 

require_once "mae.php";

class filha extends mae {

    function imprimePalavra()
    {
        parent::imprimePalavra();
    }
}
Fiz a correção do título do seu tópico. De uma lida em:

http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Descomplica Consultoria
      Oi Pessoal, preciso de ajuda com um portfolio academico
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
    • Por Dcdbbvb
      Faça um código que deverá ter uma matriz de qualquer tamanho(Você define o tamanho) no qual o usuário irá digitar os números que serão armazenados na matriz. Construa uma função que deverá somar todos os números digitados. No final o programa mostrará a matriz e o valor total da somatória.
       
      por favorrrr alguém me ajuda
    • Por lotthaus
      Alguém poderia fazer essa atividade para eu ajudar um amigo ?

    • Por Geralt96
      Bom dia. Alguém pode me dá uma ajuda pra desenvolver essa questão, por gentileza?

      Aqui está ela: https://projecteuler.net/problem=6

      A soma dos quadrados dos primeiros dez números naturais é: 1² + 2² + ... 10² = 385...
      O quadrado da soma dos dez primeiros números naturais é: (1+2+ ... 10)² = 55² = 3025...
      Portanto, a diferença entre a soma dos quadrados dos primeiros dez números naturais e o quadrado da soma é: 3025 - 385 = 2640.
      Encontre a diferença entre a soma dos quadrados dos primeiros cem números naturais e o quadrado da soma.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.