Função chamando Função

1. Função chamando Função

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 25/08/2009 - 18:25h

Olá a todos!

Estou querendo chamar uma função dentro de outra numa mesma classe. Ex.:

main.class.php

class main {
function fA() {
echo "A";
}

function fB() {
echo "B";
}

function fC() {
echo "C";
fA();
fB();
}
}


index.php
<?php
include_once(`main.class.php`);
$pagina = new main();
$pagina->fC();
}


Resultado Obtido:
C

Resultado Esperado:
CAB


Como faço para a função fC chamar as funções fA e fB?


Grato pela ajuda.

PS: Apache e PHP estão nas versões mais atuais.


  


2. 3 dias depois...

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 25/08/2009 - 19:00h

Depois de 3 dias procurando e apelando aqui, descobri que o problema era que o PHP não reconhece a classe como na linguagem C++, nela você precisa indicar a classe, senão é procurada a função fora da classe.

Sendo assim a solução é chamar dessa forma:

main::fA();
main::fB();


Se alguem tiver mais informações ou outra forma, me avise, pois essa tirei depois analisar um código monstro que achei onde era chamado dessa forma, de fora da classe.

[]s


3. Re: Função chamando Função

Murilo Habermann Torquato
muriloht

(usa Debian)

Enviado em 26/08/2009 - 20:45h

kra, acredito que o correto seria você fazer da seguinte maneira:

function fC() {
echo "C";
$this->fA();
$this->fB();
}

sempre que tu for acessar um método ou um atributo de uma classe, você se refere com $this


do jeito que você fez também funciona, mas não é o correto, pois o operador "::" é utilizado para se chamar métodos staticos ou constantes existentes dentro das classes. Veja mais informações em: http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php


um abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts