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
<?phpclass ClasseSimples { /* declaração de membro */ public $var = 'um valor padrão';
/* declaração de método */ public function mostraVar() { echo $this->var; } }?> |
|
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"
}
|
|
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
<?phpclass 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
|
|
Nenhum comentário:
Postar um comentário