Ir para conteúdo

POWERED BY:

Arquivado

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

Desbravador

[Resolvido] Extends

Recommended Posts

E ai pessoal seguinte to com uma dúvida e acho que a galera do forum pode estar me ajudando.

 

Tenho duas class:

 

Conexao.class.php e Funcoes.class.php

 

seguinte quero que o métodos da class Conexao sejão visiveis em Funcoes

Tentei utilizar na class

Funcoes extends Conexao {...

porém me retorna o seguinte erro:

Fatal error: Class 'Conexao' not found in

 

observação se coloco o

include_once 'Conexao.class.php'
funciona corretamente.

Como posso retirar esse erro fazer a importação sem o include_once, isso é possível?

 

té mais abraço a tds.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elas estao no mesmo arquivo ?

Não né ?

 

Elas tem que estar no mesmo arquivo.

Se não tiver, você precisa chamar. Por isso que funcionou quando você colocou o include_once 'Conexao.class.php' em Funcoes.class.php.

 

Se estiverem no mesmo arquivo você faz:

Classes.php

class Conexao{
   echo 'Oi';
}

class Funcoes extends Conexao{
   echo 'Opa';
}

Extends

 

Classes.php

<?php
error_reporting(E_ALL);

class test {
  var $var;

  function test() {
    $this->var = 3;
  }
}

class testing extends test {
   function testing() {
     parent::test();
   }

   function My_test() {
     return $this->var;
   }
}

$p = new testing();
echo $p->My_test();
// Return 3
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, para você usar o Extends, as classes precisam estar no mesmo arquivo.

Senão você precisará usar o include_once para chamar o arquivo no outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ele faz isso.

 

Só que as classes precisam estar no mesmo arquivo.

Olha, um exemplo delas no mesmo arquivo, em um arquivo somente:

 

Classes.php

class Conexao{
   echo 'Oi';
}

class Funcoes extends Conexao{
   echo 'Opa';
}

Agora cada classe em arquivos diferentes:

 

Conexao_class.php

class Conexao{
   echo 'Oi';
}

Funcoes_class.php

// Aqui você chama a página que está a classe de Conexao e usa o Extends
include_once 'Conexao_class.php';

class Funcoes extends Conexao{
   echo 'Opa';
}

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa usar o include_once para chamar o arquivo que contém a classe quando as classes estão em arquivos diferentes.

Se estiverem no mesmo arquivo não precisa o include_once.

 

include_once

include

require

require_once

 

Todas essa funções acima chamam arquivos, páginas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então porém se eu utilizar o include_once qual a vantagem de eu utilizar o extends?

 

requires e includes são para inclusões de arquivos já o extends você tá implementando uma herança entre classes.

 

Dá uma olhada nos conceitos de Orientação a Objeto que ficará mais claro.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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