Ir para conteúdo

Arquivado

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

Jorge Guberte

[Resolvido] Como usar variáveis declaradas no início da classe?

Recommended Posts

Eu tenho uma classe assim:

class Classe{
	 public var $latestPosts;
	 public var $latestUpdates;
function classe(){
	 $this->latestPosts = $this->getLatestPosts();
	 $this->latestUpdates = $this->getLatestUpdates();
}

function getLatestUpdates(){
//pega os updates e retorna uma array
}

function getLatestPosts(){
//pega os posts e retorna outra array
}
}

Os métodos funcionam legal, e se eu usar as arrays no método de construção da classe funciona direito. O que eu não consigo fazer é, em outro arquivo php, o seguinte:

$Classe = new Classe();
$variavel = $Classe->$latestPosts;
Como eu acesso as tais variáveis assim? Classe->variável?

 

 

EDITADO:

Opaaaaa, consegui! Ficou assim:

 

function classe(){
	 $this->latestPosts = $this->getLatestPosts();
	 $this->latestUpdates = $this->getLatestUpdates();
		  return $this;
}
:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for public você acessa com $objetoDaClasse->atributoDaClasse.

Se for public e static você acessa com nomeDaClasse::$atributoDaClasse.

Mas isso vai contra encapsulamento...o correto é declarar as variaveis private e ter getters e setters para as mesmas.

Exemplo:

<?php
class a {
	private $atributoQualquer;

	public function setAtributoQualquer($atributoQualquer){
		/*Checar o tipo de dado e etc em uma aplicação real*/
		$this->atributoQualquer = $atributoQualquer;
	}

	public function getAtributoQualquer(){
		return $this->atributoQualquer;
	}
}

$a = new a();
$a->setAtributoQualquer('Hello OOPHP world!');
echo $a->getAtributoQualquer();
?>

Deve seguir esse padrão.

---

E ... código mto estranho o seu,dá uma estudada em OO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for public você acessa com $objetoDaClasse->atributoDaClasse.

Se for public e static você acessa com nomeDaClasse::$atributoDaClasse.

Mas isso vai contra encapsulamento...o correto é declarar as variaveis private e ter getters e setters para as mesmas.

Exemplo:

<?php
class a {
	private $atributoQualquer;

	public function setAtributoQualquer($atributoQualquer){
		/*Checar o tipo de dado e etc em uma aplicação real*/
		$this->atributoQualquer = $atributoQualquer;
	}

	public function getAtributoQualquer(){
		return $this->atributoQualquer;
	}
}

$a = new a();
$a->setAtributoQualquer('Hello OOPHP world!');
echo $a->getAtributoQualquer();
?>

Deve seguir esse padrão.

---

E ... código mto estranho o seu,dá uma estudada em OO.

Opa, valeu. :D

Comecei agora há pouco o código, e tô polindo ainda. Tô pegando os dados das APIs do Twitter e do Yahoo, então tava me concentrando nisso.

Brigado pela resposta. :)

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.