Jump to content


Photo

Classe + Data Atual = ?


  • Faça o login para participar
21 replies to this topic

#1 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 18/06/2007, 17:00

Tenho uma classe onde preciso chama-la usando apenas
$instancia = new classe();
porem dentro desta classe preciso definir uma variável com o valor da data e hora atual para que eu possa utilizar este valor em outros métodos da classe, mas, se eu definir que o valor de uma variável
var $data = date("Y-m-d");
gera um erro.

Alguém sabe me dizer como seria pra resolver isso?

Falopa!

#2 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 18/06/2007, 17:17

Depende do erro gerado. Se for um notice deve ser pelo uso de var. No PHP5 você deve definir a visibilidade dessa variável (public, protected ou private). Posta mais informações ae.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#3 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 18/06/2007, 18:24

A classe que eu criei seria equivalente a esta
class minhaClasse 
{
	
	var $dataBackup = date("d-m-Y_H"); // GERA ERRO
	
	function meuMetodo(){
		
		return $this -> meuMetodo();
	}
	
}
E gera o erro

Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\xampp\htdocs\portal\minhaClasse.class.php on line 7


Falopa!

Edição feita por: hostdesigner, 18/06/2007, 18:25.


#4 Chinello Cybernético

Chinello Cybernético

    Simplesmente "Chinello"

  • Usuários
  • 1892 posts
  • Sexo:Masculino
  • Localidade:Canoas - RS

Posted 18/06/2007, 18:40

A classe que eu criei seria equivalente a esta

class minhaClasse 
{
	
	var $dataBackup = date("d-m-Y_H"); // GERA ERRO
	
	function meuMetodo(){
		
		return $this -> meuMetodo();
	}
	
}
E gera o erro

Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\xampp\htdocs\portal\minhaClasse.class.php on line 7


Falopa!

Tens certeza que o erro está na linha referente ao uso da função date() ?

O código q tu mostrou, não possui problema algum na função date()..

Tu disse q é um erro de syntaxe.. Verifique atentamente a linha referente ao erro, e se for preciso, reescreva-a.. ;)

Fui :P
Diego Sampaio - kroW - PHP Framework > http://chinelloweb.net/
chinello at gmail dot com

System > Athlon 64 3200+ Mobile | Kubuntu 7.04 Fesity Fawn AMD64 | Kernel 2.6.20-16
Coding @ KDE 3.5.7 | PHP 5.2.1 | Apache 2.2.3 | MySQL 5.0.38

#5 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 18/06/2007, 18:51

Sim, tenho certeza que é na linha que declaro a variável $dataBackup, já escrevi diversas vezes e mesmo assim dá erro o problema só ocorre quando eu adiciono a função date() se eu adicionar array() ou um valor boleano, inteiro ou String sempre funciona normalmente o problema só ocorre quando uso a função date().

Tente fazer ai no seu que vai dar o mesmo erro.

OBS.: Estou usando PHP 5
================================
EDITADO

Eu estou utilizando um POG pra resolver o problema, mas, gostaria de resolver de outra forma mais correta
class minhaClasse
{
	
   // var $dataBackup = date("d-m-Y_H"); // GERA ERRO
	
	function meuMetodo(){
		
		return $this -> meuMetodo();
	}

	// POG das grandes :D
	function  dataBackup(){

	   return date("d-m-Y_H");
	}
	
}

Falopa!

Edição feita por: hostdesigner, 18/06/2007, 19:00.


#6 Chinello Cybernético

Chinello Cybernético

    Simplesmente "Chinello"

  • Usuários
  • 1892 posts
  • Sexo:Masculino
  • Localidade:Canoas - RS

Posted 18/06/2007, 19:10

Hmm.. Então, o PHP não permite que a função date seja usada no momento de declarar as variáveis do objeto..

Tu não precisa fazer nenhum POG, pra conseguir o mesmo efeito..

Defina o valor da variável no construtor da classe.
<?
class minhaClasse
{
	var $dataBackup;

	function __construct()
	{
		$this->dataBackup = date('d-m-Y_H');
	}
}
?>
E pronto :)

Fui :P
Diego Sampaio - kroW - PHP Framework > http://chinelloweb.net/
chinello at gmail dot com

System > Athlon 64 3200+ Mobile | Kubuntu 7.04 Fesity Fawn AMD64 | Kernel 2.6.20-16
Coding @ KDE 3.5.7 | PHP 5.2.1 | Apache 2.2.3 | MySQL 5.0.38

#7 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 18/06/2007, 19:30

As propriedades de uma classe só podem conter valores constantes. Isto é: um número fixo, um texto fixo, um vetor fixo, etc., nenhuma manipulação pode ser feita, nem operação aritmética, nem junção de textos, nem retorno de função, nem nada além de valores constantes. ;-)

[]’s :D Até mais

#8 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 18/06/2007, 19:30

Não quero discordar de você, mas, de certa forma isso também seria POG, mas, é melhor que minha solução, digo melhor pois eu posso economizar dois dígitos nos parênteses que eu precisaria escrever fazendo a minha POG.

Falopa!

#9 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 18/06/2007, 19:37

Não quero discordar de você, mas, de certa forma isso também seria POG, mas, é melhor que minha solução, digo melhor pois eu posso economizar dois dígitos nos parênteses que eu precisaria escrever fazendo a minha POG.

Falopa!

Não seria não, construtores foram feitos - dentre outras finalidades - para inicializar objetos que não possuem valor constante por padrão. Semanticamente correto e genuinamente OOP. ;-)

[]’s :DAté mais

#10 bobmatador

bobmatador

    12 Horas

  • Usuários
  • 210 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 18/06/2007, 19:38

ou faz um método de GET cara

public var $data;

function getData (){
return $this->data = date ("d/m/Y"); // Formato brasil
}

falopa! =P
Sua fonte de Tutoriais na Web!
TutoriaisClube.com

#11 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 18/06/2007, 19:38

PAULO RICARDO também é cultura!

ou faz um método de GET cara

public var $data;

function getData (){
return $this->data = date ("d/m/Y"); // Formato brasil
}

falopa! =P

:blink: :wacko:

Falopa!

Edição feita por: hostdesigner, 18/06/2007, 19:40.


#12 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 18/06/2007, 19:45

ou faz um método de GET cara

Ainda que seja possível, getters e setters devem ser utilizados com parcimônia. Não há razão, por exemplo, para se ter um getter que é chamado uma única vez na classe apenas para configurar um dado inicializável. Questão de viabilidade/aplicabilidade. :assobio:

Paulo Ricardo é cultura mesmo, MPB! :P

[]’s :DAté mais

#13 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 18/06/2007, 19:48

Paulo Ricardo é cultura mesmo, MPB! :P

uyhauayh
RPM? arg prefiro Maria Rita, Seu Jorge, Ana Carolina e Tom Jobin :D

Falopa!

#14 bobmatador

bobmatador

    12 Horas

  • Usuários
  • 210 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 18/06/2007, 20:06

Ainda que seja possível, getters e setters devem ser utilizados com parcimônia. Não há razão, por exemplo, para se ter um getter que é chamado uma única vez na classe apenas para configurar um dado inicializável. Questão de viabilidade/aplicabilidade.


Sr. Paulo Ricardo,

Pelos padrões quando vc quer resgatar qualquer atributo de uma classe é utlizado o método GET e quando vc quer atualizar o mesmo vc utiliza o método set.
Sua fonte de Tutoriais na Web!
TutoriaisClube.com

#15 Chinello Cybernético

Chinello Cybernético

    Simplesmente "Chinello"

  • Usuários
  • 1892 posts
  • Sexo:Masculino
  • Localidade:Canoas - RS

Posted 18/06/2007, 20:12

Ainda que seja possível, getters e setters devem ser utilizados com parcimônia. Não há razão, por exemplo, para se ter um getter que é chamado uma única vez na classe apenas para configurar um dado inicializável. Questão de viabilidade/aplicabilidade.


Sr. Paulo Ricardo,

Pelos padrões quando vc quer resgatar qualquer atributo de uma classe é utlizado o método GET e quando vc quer atualizar o mesmo vc utiliza o método set.

Pra esses casos, não existem padrões, existem práticas..

O Paulo não disse q era errado, disse q por questão de "viabilidade/aplicabilidade", nesse caso do nosso amigo hostdesigner, um setter não é a solução adequada.

Aí eu te pergunto: se o valor do objeto vai ser setado apenas na inicialização do mesmo, pq criar um método setter que seria chamado apenas no construtor do objeto? É mto mais simples atribuir esse valor diretamente no construtor. Entende? ;)
Diego Sampaio - kroW - PHP Framework > http://chinelloweb.net/
chinello at gmail dot com

System > Athlon 64 3200+ Mobile | Kubuntu 7.04 Fesity Fawn AMD64 | Kernel 2.6.20-16
Coding @ KDE 3.5.7 | PHP 5.2.1 | Apache 2.2.3 | MySQL 5.0.38




1 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)


    Bing (1)
IPB Skin By Virteq