Jump to content

duvida class


bmiguel84

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" ?

Link to post
Share on other sites

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?

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

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....

Link to post
Share on other sites

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();

?>

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

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

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%.

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.