Ir para conteúdo

POWERED BY:

Arquivado

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

ahsc

[Resolvido] Pegar variáveis dentro de classes e funções

Recommended Posts

Olá a todos. Tenho uma dúvida:

 

Como pegar uma ou mais variáveis dentro de um classe. Abaixo, segue a minha classe

 

CODE
<?php

class recuperaDados

{

 

/*-------------------------pegar data Atual do sistema--------------------------------------*/

 

function dataAtual()

{

// leitura das datas

$dia = date('d');

$mes = date('m');

$ano = date('Y');

$semana = date('w');

 

// configuração mes

switch ($mes)

{

case 1: $mes = "janeiro"; break;

case 2: $mes = "fevereiro"; break;

case 3: $mes = "março"; break;

case 4: $mes = "abril"; break;

case 5: $mes = "maio"; break;

case 6: $mes = "junho"; break;

case 7: $mes = "julho"; break;

case 8: $mes = "agosto"; break;

case 9: $mes = "setembro"; break;

case 10: $mes = "outubro"; break;

case 11: $mes = "novembro"; break;

case 12: $mes = "dezembro"; break;

}

 

// configuração semana

 

switch ($semana)

{

case 0: $semana = "Domingo"; break;

case 1: $semana = "Segunda-feira"; break;

case 2: $semana = "Terça-feira"; break;

case 3: $semana = "Quarta-feira"; break;

case 4: $semana = "Quinta-feira"; break;

case 5: $semana = "Sexta-feira"; break;

case 6: $semana = "Sábado"; break;

}

echo ("$dia de $mes de $ano");

 

}

}

?>

 

Aqui eu recupero o que estna no "echo".

 

CODE
<?php

require("modulos/recuperaDados.php");

$dataAtual = new recuperaDados;

$dataAtual -> dataAtual() ;

?>

 

A pergunta é, como faço para pegar as variáveis que estão na função dataAtual() individualmente? Há alguma maneira ou eu terei que fazer uma função por vez?

 

Obrigado a quem puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eles precisam estar no mesmo escopo da classe. Da forma que está, o escopo delas se limita somente à função que dataAtual().

 

Você irá declarar como atributo da classe e então utilizar a partir delas.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o Paulo André quis dizer para você colocar as variáveis fora do "function () { ... }", mas ainda sim, dentro da classe. Por exemplo:

 

public $dia = ...

public $mes = ...

 

E por aí vai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

class MinhaClasse {

 

public $atributo;

 

public function meuProcedimento()

{

$this->atributo = "Teste";

}

 

}

 

$obj = new MinhaClasse();

$obj->meuProcedimento();

 

echo $obj->atributo; // Saída: Teste

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem jeito, não exibe uma variável por vez, sempre chama a função inteira. Meu código

CODE
<?php

class recuperaDados

{

public $semana;

public $id;

/*--------------------obter a versão atual do sistema--------------------------------------*/

public function versao()

{

include("conexao/conexao.php");

$sql=" SELECT *FROM `versao` LIMIT 0 , 30 ";

$res=mysql_query($sql, $con);

while($result=mysql_fetch_array($res))

{

$versao=$result['versao'];

$id=$result['idVersao'];

 

}

echo $versao;

mysql_close($con);

}

 

/*-------------------------pegar data Atual do sistema--------------------------------------*/

 

public function dataAtual()

{

// leitura das datas

$dia = date('d');

$mes = date('m');

$ano = date('Y');

$this->$semana = date('w');

 

// configuração mes

switch ($mes)

{

case 1: $mes = "janeiro"; break;

case 2: $mes = "fevereiro"; break;

case 3: $mes = "março"; break;

case 4: $mes = "abril"; break;

case 5: $mes = "maio"; break;

case 6: $mes = "junho"; break;

case 7: $mes = "julho"; break;

case 8: $mes = "agosto"; break;

case 9: $mes = "setembro"; break;

case 10: $mes = "outubro"; break;

case 11: $mes = "novembro"; break;

case 12: $mes = "dezembro"; break;

}

 

// configuração semana

 

switch ($this->$semana)

{

case 0: $this->$semana = "Domingo"; break;

case 1: $this->$semana = "Segunda-feira"; break;

case 2: $this->$semana = "Terça-feira"; break;

case 3: $this->$semana = "Quarta-feira"; break;

case 4: $this->$semana = "Quinta-feira"; break;

case 5: $this->$semana = "Sexta-feira"; break;

case 6: $this->$semana = "Sábado"; break;

}

echo ("$dia de $mes de $ano");

}

}//final da classe

?>

 

Na página que vai recuperar os dados das funções dentro das classes eu tenho os seguintes códigos:

 

CODE

<?php

$versao = new recuperaDados();

$versao -> versao();

echo $versao->dia;

?>

 

<?php

$dataAtual = new recuperaDados();

$dataAtual->dataAtual() ;

echo $semana->semana;

?>

 

Obtenho o seguinte erro

CODE
Fatal error: Cannot access empty property in D:\wamp\www\Pc-Click\web - Pc-Click\flash\Sistema Geral\modulos\recuperaDados.php on line 30

 

Onde a linha 30 equivale a essa linha de código: $this->$semana = date('w');.

 

Onde eu errei já que segui o que me foi informado.

 

Obrigado a quem puder me dar uma ajudinha...

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.