Ir para conteúdo

POWERED BY:

Arquivado

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

William Souza

[Resolvido] Função no mesmo objeto

Recommended Posts

Olá, pessoal.

 

Estou fazendo um sistema com PHP OO e me surgiu uma situação com a qual eu nunca havia me deparado antes. Preciso chamar um método que pertence ao mesmo objeto. Procurei no Google do Brasil e dos EUA e não consegui encontrar como se faz isso, o que é incrível, pois não parece ser uma dúvida muito cabeluda :D.

 

De qualquer forma, segue um exemplo pra explicar bem:

 

<?php

class minhaClasse {

    public function metodo_um() {
        //Operações
    }

    public function metodo_dois() {
        //Aqui quero chamar o metodo_um()
    }

}

?>

Espero que possam me ajudar.

 

 

Muito obrigado,

William

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Php tem uma variável prédefinida que se chama $this.

O $this serve exatamente pra isso, resgatar valores em qualquer parte da classe. Não somente métodos, mas qualquer variável que você definir com o $this vai ficar disponível em qualquer parte dessa classe. Por exemplo: vamos criar uma classe que retorna o dobro de um número e esse número elevado a certa potência. Para cada função você seria obrigado a definir function($numero), certo? Errado!! Basta você usar essa variável root. Veja:

 

<?php
class Numero {

  function __construct($numero, $potencia) {
   $this->numero = $numero;
   $this->potencia = $potencia;
}

 function Dobro() {
  $dobro = $this->numero * 2;
    return $dobro;

}

 function Potencia() {
  $valor = $this->numero ^ $this->potencia;
    return $valor;
}
}

//agora quando você for chamar a classe basta fazer:
 $class = new Numero(10, 3);

//onde o dez vai ser o $this->numero, e 3 vai sero $this->potencia.
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pelas respostas!

 

Achei a besteira que eu estava fazendo... e bota besteira nisso...

 

<?php

class meuTeste {

	public function vai() {
	
		$this->imprime = "funcionou";
		
		return $this->imprime;
	
	}
	
	
	public function teste() {
		
		return $this->vai();
	
	}

}

$testador = new meuTeste;

$a = $testador->teste();

echo "$a";

?>

Nesse teste eu estava chamando vai() dentro de teste() sem usar o return, achando wue só o return da primeira função bastava. Aí, claro, 'funcionou' não era impresso na tela conforme desejado.

 

Idiotice minha... peço desculpas...

 

 

Abraço

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.