Académique Documents
Professionnel Documents
Culture Documents
um objeto;
definido;
Um objeto uma instncia de uma 'classe'. Voc define uma classe utilizando o trecho de cdigo abaixo;
class ClasseBase{ //aqui entra o cdigo }
instanciado;
$objetoBase = new ClasseBase;
Caso queira, voc pode atribuir valores s variveis (ou atributos) da classe atravs do mtodo construtor.
$objetoBase = new ClasseBase($var1, $var2);
possui um construtor;
Trata-se de um 'mtodo mgico' executado toda vez que o objeto instanciado. Se o construtor no estiver definido, o construtor da classe base (se aplicvel) utilizado.
function __construct() { //aqui entra o cdigo }
Caso voc esteja atribuindo valores s variveis do objeto, voc precisa do seguinte cdigo;
function __construct($var1, $var2) { //aqui entra o cdigo }
Voc pode ainda utilizar o construtor da classe base junto com o construtor da classe atual. Ao definir um construtor na classe base, voc pode processar trechos de cdigo e/ou definir e passar argumentos adicionais ao construtor da classe base. Por exemplo;
function __construct($var1, $var2) { parent::__construct($var1, $var2, $var3); }
pgina 1 de 9
possui um destrutor;
Este 'mtodo mgico' executado toda vez que o objeto destrudo, geralmente quando o script terminar de ser processado.
function __destruct() { //aqui entra o cdigo }
pode herdar;
Uma classe pode herdar todos os mtodos e atributos de uma outra classe. O nome disso herana e trata-se de um dos principais conceitos da orientao a objetos.
class SubClasse extends ClasseBase { //aqui entra o cdigo }
pgina 2 de 9
utilizando instanceof;
O operador de tipo instanceof utilizado para determinar se uma varivel ou no uma instncia (um objeto) de uma classe.
$subObjeto = new SubClasse; if ($subObjeto instanceof SubClasse) { //isto verdadeiro }
utilizando __call();
Mais um mtodo mgico. Este executado quando um mtodo indefinido ou inacessvel chamado. O nome da funo e os argumentos devem ser passados como parmetros.
function __call($funcao, $args) { echo Voc tentou executar um mtodo invlido.<br>; echo Mtodo: .$funcao.<br>; echo implode(', ', $args); exit; }
um mtodo;
definido;
Um mtodo uma funo dentro de uma classe.
function subMetodo() { echo 'Isto um mtodo.'; }
acessado;
Deve ser acessado da mesma maneira que voc utiliza funes. Se desejar, voc pode passar variveis atravs de parmetros. Para chamar um mtodo dentro do escopo da
pgina 3 de 9
classe, utilize;
$this->subMetodo();
Da mesma maneira, voc tambm pode chamar mtodos de uma classe base. Voc os referencia dentro e fora do escopo da classe utilizando;
$subObjeto = new SubClasse; $resultado = $subObjeto->metodoBase();
Dentro do escopo da classe h uma maneira alternativa. Este tipo de chamada geralmente utilizado para mtodos estticos.
$resultado = parent::metodoBase();
pgina 4 de 9
Agora, para acessar o mtodo fora do escopo da classe, sem instanciar o objeto (onde SubClasse o nome do objeto) utilize;
echo SubClasse::metodoEstatico();
induo de tipo;
Este recurso permite que voc especif ique o tipo dos argumentos que sero passados para um mtodo. Voc pode querer que seu mtodo s receba parmetros do tipo array ou uma instncia de um objeto, por exemplo.
public function metodoBase(SubClasse $subObjeto) { echo 'Varivel precisa ser uma instncia de SubClasse'; }
pgina 5 de 9
utilizando func_num_args();
Esta funo nativa do PHP retorna o nmero de argumentos passados para uma funo/mtodo. Por exemplo;
public function metodoBase($var1, $var2){ if (func_num_args() != 2){ return false; } } } else { //aqui entra o cdigo
um atributo;
definido;
Um atributo nada mais do que uma varivel dentro do escopo da classe. Para definir um atributo utilize:
$subVar = True;
acessado;
Para referenciar um atributo ou definir um valor para o mesmo dentro da classe, utilize;
//referencia um atributo print $this->subVar; //define um valor para o atributo $this->subVar = False;
pgina 6 de 9
Para acessar o atributo fora do escopo da classe sem instanciar o objeto (onde SubClasse o nome do objeto) utilize;
echo SubClasse::$estatico;
Para acessar a constante voc utiliza o nome da classe, da mesma forma que faz quando
pgina 7 de 9
uma interface;
definida;
Uma interface um 'manual de instrues' ou um 'modelo' de como as classes devem ser utilizadas. parecido com definir um mtodo abstrato na classe base, mas permite uma flexibilidade maior entre mltiplas classes. geralmente utilizado para tarefas mais internas do aplicativo, como registro de logs e tratamento de excees;
interface Modelo { //aqui entra o cdigo }
implementada;
Ao definir uma classe, voc utiliza a keyword implements para dizer que a classe precisa seguir o modelo da interface. Mais de uma interface pode ser implementada.
class ClasseBase implements Modelo{ //aqui entra o cdigo }
pgina 8 de 9
misc;
php5 oop;
http://www.php.net/manual/en/oop5.intro.php
pgina 9 de 9