CHAMAR FUNÇÃO DE OUTRA CLASSE

1. CHAMAR FUNÇÃO DE OUTRA CLASSE

Paulo
henbran

(usa Debian)

Enviado em 24/05/2010 - 20:27h

1) Tenho uma classe listarItens() em um arquivo listarItens.php
aqui uso uma função resultado() que mostra os dados em html na tela

2) Tenho outra classe pesquisaSql() em um arquivo pesquisaSql.php
aqui tenho uma funcao prepararSql() que forma a string sql para consulta

3) E tenho outra classe comandosSql() em um arquivo comandosSql.php
aqui tenho as funções pesquisar(), alterar(), incluir(), excluir().

A funcao resultado() da classe listarItens, instancia e chama a classe pesquisaSql() e chama a funcao prepararSql(). A função prepararSql() usa uma instancia da classe comandosSql() e executa a funcao pesquisar, com os dados oriundos da função resultado() da classe listar itens.

COMO FAÇO PARA EXECUTAR ESSE PROCEDIMENTO?
dentro da classeA:
$this->instanciaClasseB->funcaoB();

A classeB já tem definido:
$this->instanciaClasseC->funcaoC();
-----------------------------------------
Desse jeito dá um erro assim ...:
Fatal error: Call to undefined method stdClass::pesquisar() in /var/www/projeto/php/PesquisaSql.php on line 342
==================================================
Por favor, tem alguma solução desse problema?
==============================================================================================
==============================================================================================
O QUE OCORRE NA VERDADE É QUE tenho:
arquivo: Banco.php
<?php
class Banco{
.
.
... functions ...
.
.
}
?>
--------------------------
arquivo: comandosSql.php
<?php
require_once ("Banco.php");
class comandosSql extends Banco{
.
.
... functions ...
.
.
}
?>
--------------------------
arquivo: pesquisaSql.php
<?php
require_once ("comandosSql.php");
class pesquisaSql extends comandosSql{
.
.
... functions ...
.
.
}
?>
......................
Quando mando uma string de pesquisa via post ao arquivo pesquisa.PHP, a mesma é recebida normalmente, porém a instanciação "class pesquisaSql extends comandosSql" não dá. Vi uma pagina (em inglês) do php.net onde diz que não dá para fazer herança múltipla pelo PHP (http://www.php.net/manual/pt_BR/language.oop5.inheritance.php), onde extá assim "This means that you cannot have one class extend 2 other classes", porém diz que posso fazer uma classe extender a outra, que se estende outra, e assim por diante. Pessoal, sei que estou meio perdido quando pegueiuma cópia de toda minha aplicação que funciona normalmente e fiz o propósito de a transformar toda em orientada a objetos, usando todos os recursos possíveis de PHP orientado a Objetos. Desculpem-me a amolação, porém se alguém perceber alguma gafe minha que ainda não percebi, por favor me indiquem. Obrigado. OBS:"posso postar todo o código também".


  


2. Você já tentou fazer assim:

Rodrigo Kulb
RodrigoKulb

(usa Ubuntu)

Enviado em 24/05/2010 - 21:05h

Você já tentou fazer assim:

dentro da classeA:

NomeClasseB::funcaoB();

NomeClasseC::funcaoC();

Lembrando que você deve ter incluído essas classes no programa.

Eu utilizo a autoLoad.php






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts