Jump to content
bmiguel84

duvida class

Recommended Posts

bmiguel84

olá!

Alguém me pode explicar porque é que isto:

<?php
class a {
public static $mm = "";

public static function set () {
	if ( isset ( $this ) ) {
		$this->mm .= "ola";
	}
}

}

class b extends a {
public static function test () {
	parent::set ();
	echo parent::$mm;
}
}

$obj = new b;
$obj->test();

?>

não faz print de "ola" ?

Share this post


Link to post
Share on other sites
scorch

Estás a usar a variável $this numa class estática, com uma função estática e uma variável estática. :thumbsup:

Esse teu código está muito confuso. Tu instancías uma classe e chamas uma função estática através dessa instância. De certeza que queres que sejam funções/variáveis estáticas?


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
bmiguel84

A minha ideia é na child mudar o valor de uma var na parent.

Já tentei sem recurso aos statics e coisas do genero, mas nao está a surti efeito... o que quero é "simples":

class A {

variavel

funcao muda_variavel ( texto ){

  $this->variavel .= texto

}

}

class B extends A {

parent::muda_variavel ("ola");

}

echo A::variavel

Isto traduzido para PHP não dá resultado....

Share this post


Link to post
Share on other sites
scorch

Assim funciona:

<?php

class a {
public $mm = "";

public function set () {
	if ( isset ( $this ) ) {
		$this->mm .= "ola";
	}
}
    
}

class b extends a {
public function test () {
	$this->set();
	echo $this->mm;
}
}

$obj = new b;
$obj->test();

?>


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
bmiguel84

Ya... devia tar a fazer alguma coisa mal antes... mas o server tb tinha o error_reporting desligado.

Mas agora, como é que faço um print da variavel fora das classes? Só me falta isso...

A ideia é um sistema de "debug"... tenho a class principal, com a variavel debug_data. As childs, como por exemplo class mysql vai fazendo as coisas normais (connect, select_db etc) e vai guardando na "debug". No fim do html quero fazer um print da "debug", mas nao me está a aparecer nada :S

Share this post


Link to post
Share on other sites
scorch

Chamas uma função que imprima tudo. :thumbsup:


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
bmiguel84

lol... natural neh?

o problema é: dentro da extended mysql, se chamar a função, ela imprime. se chavar a função fora das classes, não imprime.

Share this post


Link to post
Share on other sites
brunoais

Cria um método __toString(). Ajuda imenso o PHP a funcionar e assim ficas com um texto representativo.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.