ahsc 1 Denunciar post Postado Junho 13, 2008 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
Paulo André 0 Denunciar post Postado Junho 13, 2008 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
ahsc 1 Denunciar post Postado Junho 13, 2008 Você poderia exemplificar, por favor? Não consegui visualizar sua explicação. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 13, 2008 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
ahsc 1 Denunciar post Postado Junho 13, 2008 Não funfa. Você poderia exemplificar? Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Junho 13, 2008 <?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
ahsc 1 Denunciar post Postado Junho 14, 2008 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
Paulo André 0 Denunciar post Postado Junho 14, 2008 $this->semana = date('w'); Compartilhar este post Link para o post Compartilhar em outros sites
ahsc 1 Denunciar post Postado Junho 14, 2008 Paulo, Obrigado pela ajuda. Agora funcionou certinho. wlws Compartilhar este post Link para o post Compartilhar em outros sites