Manual do PHP
Anterior | Capítulo 19. Classes e Objetos (PHP 5) | Próxima

# O Básico

## Classe

Toda definição de classe começa com a palavra-chave class, seguido por um nome da classe, que pode ser qualquer nome que não seja uma palavra reservada no PHP. seguido por um par de chaves, que contém a definição dos membros e métodos da classe. Dentro de cada método, exceto por métodosestáticos (static), uma pseudo variável $this está disponível. $this é uma referência para a mesma instância que chamou o método.

Exemplo 19-1. Definição simples de uma classe
`<?php class ClasseSimples { /* declaração de membro */ public $var = 'um valor padrão'; /* declaração de método */ public function mostraVar() { echo $this->var; } } ?>`

## new

Para criar uma instância de um objeto, um novo objeto deve ser criado e atribuído a uma variável. Um objeto sempre será atribuído quando um novo objeto for criado a não ser que o objeto tem umconstrutor definido que dispara (throws) umaexceção por um erro.

Exemplo 19-2. Criando uma instância
`<?php $instancia = new ClasseSimples(); ?>`

Quando atribuindo um instância já criada de um objeto à uma nova variável, a nova variável acessará a mesma instância do objeto que foi atribuída. Esse comportamento é o mesmo quando passando instâncias à uma função. Uma nova instância de um objeto já criado pode ser feitaclonando (cloning) ele.

Exemplo 19-3. Atribuição de Objetos
`<?php $atribuido = $instancia; $referencia =& $instancia; $instancia->var = '$atribuido terá esse valor'; $instancia = null; /* $instancia e $referencia se tornam nulos (null) */ var_dump($instancia); var_dump($referencia); var_dump($atribuido); ?>`
O exemplo acima irá imprimir:
    NULL
    NULL
    object(ClasseSimples)#1 (1) {
       ["var"]=>
         string(26) "$atribuido terá esse valor"
    }

## Herança (extend)

Uma classe pode herdar métodos e membros de uma outra classe usando a palavra-chave extend na declaração. Não é possível herdar classes múltiplas, uma classe só pode herdar de uma classe base.

Os métodos e membros herdados podem ser sobrecarregados, a menos que a classe pai tenha definido o método como final, redeclarando-os usando o mesmo nome definido na classe pai. É possível acessar o método ou membro sobrecarregado referenciando-os comparent::

Exemplo 19-4. Herança Simples
`<?php class ClasseHerdeira extends ClasseSimples { /* Redefine o método pai */ function mostraVar() { echo "Classe Herdeira\n"; parent::mostraVar(); } } $herdeira = new ClasseHerdeira(); $herdeira->mostraVar(); ?>`
O exemplo acima irá imprimir:
    Class Herdeira
    um valor padrão

Anterior | Principal | Próxima
Classes e Objetos (PHP 5) | Acima | Autoloading Objects