Ir para conteúdo
Fórum Script Brasil
  • 0

Php5 Orientado à Objetos


Guest Jaumzera

Pergunta

Alguém aí sabe me explicar porque o código abaixo não funciona no PHP5?

Abaixo do código explico direitinho o que acontece.

<?php
class Classe{
	private $nome;
	private $sobreNome;

	public function __construct( $nomeAux ){
  $this.$nome = $nomeAux;
  echo "<br>O objeto foi criado com o nome: ".$this.$nome;
	}

	public function __destruct(){
  unset( $this );
  echo "<br>O objeto ".$this.$nome." foi destruído";
	}

	public function printNomeCompleto(){
  echo "<br>O nome atual é: ".$this.$nome." ".$sobreNome;
	}

	public function setNome( $nomeAux ){
  echo "<br>O novo nome do objeto é ".$this.$nome;
  $this.$nome = $nomeAux;
	}

	public function setSobreNome( $sobreNomeAux ){
  echo "<br>O novo sobrenome do objeto é ".$this.$sobreNome;
  $this.$sobreNome = $sobreNomeAux;
	}
}

$classe = new Classe( "Zé" );
$classe->setNome( "Zéca" );
$classe->setSobreNome( "Urubú" );
$classe->printNomeCompleto();
?>	

Bem:

1 - Quando instancia o objeto passando o nome "Zé", o nome não é atribuído à variável $nome, que é atributo privado da classe.

2 - Após ele executar o método setNome( "Zéca" ) ele simplesmente destrói o objeto, sem nenhuma explicação.

Desde já, obrigado!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom, para criar o método construtor eu não conheço essa sintaxe, utilizei o mesmo nome da classe assim:

function Classe() {
// Corpo do método
}

Agora, o destrutor eu já não sei como é...nem sei se o PHP suporta...

É que a sintaxe para criação de construtores e destrutores no PHP5 foi reformulada!

Agora existe um padão onde todos os construtores são __construct e os destrutores __destruct!!!!!

De qualquer maneira, obrigado!

ph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, descobri qual é o problema com a classe e decidi compartilhar aqui com vocês .

O problema é o seguinte: quando você vai apontar para um atributo da classe, de dentro de um método, não é permitido usar o dolar ($) antes do nome do atributo:

   Ex ( que não funciona ):      $this->$atributo; // com o $

   Ex ( que funciona ):            $this->atributo; // sem o $

Quanto aos métodos construtores e destrutores ( __construct() e __destruct ) a mamenira de usar é como está descrita na classe postada acima.

Beleza, falow, tchau-tchau!!!

Jaumzera ph34r.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...