Ir para conteúdo

POWERED BY:

Arquivado

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

Júnior Mendonça

Erro em classe

Recommended Posts

Alguém pode me ajudar a identificar o erro no código?

- este é o código inteiro

 

class Generic {
	private $atr = array();

	public function objSet($a, $b = false) {
		if ($b == false) {
			if (is_array($a)) {
				foreach ($a as $k => $v) {
					$this->$atr[$k] = $v;
				}
			} else {
				$output = '<p>Era esperado um <b>Array</b>.</p>';
			}
		} else {
			$this->$atr[$a] = $b;
		}
	}

	public function objGet($a) {
		return $this->$atr[$a];
	}
}

$usuario = new Generic();
$usuario->objSet('nome', 'Nome do usuário');
$usuario->objSet('senha', '123456');

echo $usuario->objGet('nome');

Compartilhar este post


Link para o post
Compartilhar em outros sites

habilita a exibição de erro no php...

Compartilhar este post


Link para o post
Compartilhar em outros sites

habilita a exibição de erro no php...

 

Boa.

 

Notice: Undefined variable: atr in /var/www/fx/classes/usuario.class.php on line 19
Fatal error: Cannot access empty property in /var/www/fx/classes/usuario.class.php on line 19

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui, membros de classe se acessa assim : $this->atr

$this->$atr[$k] = $v;

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui, membros de classe se acessa assim : $this->atr

$this->$atr[$k] = $v;

 

Cara, eu acho que é isso mesmo que eu tô fazendo... né?

$this->$attr[$k] = $v;
$this->$attr[$a] = $b;
return $this->$attr[$a];

 

Eu não usava classes e estou tentando me adaptar.

Parece que não posso fazer uso de arrays nesse caso. sera?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui, membros de classe se acessa assim : $this->atr

$this->$atr[$k] = $v;

 

Cara, eu acho que é isso mesmo que eu tô fazendo... né?

$this->$attr[$k] = $v;
$this->$attr[$a] = $b;
return $this->$attr[$a];

 

Eu não usava classes e estou tentando me adaptar.

Parece que não posso fazer uso de arrays nesse caso. sera?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ele quis dizer foi que não é assim que se chama uma propriedade, agora ele é referencia da classe então o $ passa a não ser necessário.

$this->attr[$k] = $v;
$this->attr[$a] = $b;
return $this->attr[$a];

 

o correto dos 3 seria assim;

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ele quis dizer foi que não é assim que se chama uma propriedade, agora ele é referencia da classe então o $ passa a não ser necessário.

$this->attr[$k] = $v;
$this->attr[$a] = $b;
return $this->attr[$a];

 

o correto dos 3 seria assim;

 

 

Ok. detalhe passou totalmente despercebido.

Problema resolvido. Obrigado.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que não tem nada a ver mas, você utiliza o INFERNET EXFODER pra desenvolver sistemas? :o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que não tem nada a ver mas, você utiliza o INFERNET EXFODER pra desenvolver sistemas? :o

 

Pra desenvolver eu não uso nenhum navegador =P

Mas costumo realizar testes nos mais populares.

* Infelizmente o IE é um deles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

IE(6) bom é aquele q n abre kkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra desenvolver eu não uso nenhum navegador =P

Mas costumo realizar testes nos mais populares.

* Infelizmente o IE é um deles.

Pra CSS, né? Eu só testava no IE7+. Eu me referia ao seu navegador padrão para desenvolvimento.

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.