Introdução a Orientação a Objetos no PHP4

Explica de forma clara e simples a orientação a objetos com o PHP4, abrangendo definição de classes, funções, construtores e sua forma de uso.

[ Hits: 25.365 ]

Por: Thales Santos em 01/05/2006


Introdução



Este tutorial tem por objetivo introduzir ao programador PHP as funcionalidades da orientação a objeto. Usa como base o PHP4.

Caso queira se aprofundar em Orientação a Objeto, recomendo o uso do PHP5, que teve todo seu suporte a OO reescrito.

Classes e funções


Uma classe é um conjunto de variáveis e funções trabalhando em conjunto.

I.I - Definição básica de uma classe

<?
class Dados { //Define a classe
   var $nome; //Variável nome
   var $email; //variável e-mail
   var $msn; // Variável do MSN

   function defineDados($nome, $email, $msn){
      $this->nome = $nome;
      $this->email = $email;
      $this->msn = $msn;
   }

   function retornaDados(){
      echo "Nome: ".$this->nome;
      echo "<br>Email: ".$this->email;
      echo "<br>MSN: ".$this->msn;
   }
}
?>

Nada muito complicado... Bem simples e de fácil entendimento! :-)

I.II - Usando a classe

De que adianta ter a classe se não souber usá-la? :P Não adianta nada! Então, vamos lá:

$dados = new Dados;

Você pode usar a classe várias vezes em um único arquivo, é como que a cada variável que for igual a "new nomeDaClasse" ele criasse uma nova classe, tanto que você não trabalhará com ela como trabalha com funções normais.

Variável $this - Como o programa não sabe o nome da variável que conterá a classe, se usa $this. Pois ao invés de $dados, poderia ser $thales, $var, não é mesmo?

$dados->defineDados("Thales", "darkthales@globo.com", "darkthales@globo.com");
$dados->retornaDados();

Note que as variáveis foram definidas através da função defineDados, mas poderia ser assim também:

$dados->nome = "Thales";
$dados->email = "darkthales@globo.com";
$dados->msn = "darkthales@globo.com";

E buscamos os dados das variáveis através da função retornaDados, mas também poderia ser assim:

echo "Nome: ".$dados->nome;
echo "<br>Email: ".$dados->email;
echo "<br>MSN: ".$dados->msn;

Notas:

Para trabalhar com variáveis da classe, se usa: $dados->variavel e não $dados->$variavel.

Classes não permitem divisão em blocos, exemplo:

<?
class Dados { //Define a classe
?>
<?
var $nome; //Variável nome
var $email; //variável e-mail
var $msn; // Variável do MSN

function defineDados($nome, $email, $msn){
   $this->nome = $nome;
   $this->email = $email;
   $this->msn = $msn;
}

function retornaDados(){
   echo "Nome: ".$this->nome;
   echo "<br>Email: ".$this->email;
   echo "<br>MSN: ".$this->msn;
}
?>
<?
}
?>

Você não pode ter uma classe com o nome stdClass, é uma palavra reservada da Zend.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Extends
   3. Construtores
   4. :: ???
   5. Parent
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Sistema de Gerenciamento de Conteúdo

Implementando scripts PHP com MySQL

If inline para PHP

Sistema de notícias em PHP

Introdução ao PHP-GTK

  
Comentários
[1] Comentário enviado por Dark_Avatar em 02/05/2006 - 18:52h

Cara, ótimo tutorial, exemplifica bem como utilizar um pouco de POO no PHP, oque ajuad muito, para por exemplo, fazer classes de skins.

[2] Comentário enviado por henrysmith em 03/05/2006 - 08:08h

Essa é a melhor introdução que eu já li. Obrigado!!!
Só uma pergunta:

"Eu sou B::exemplo() e provenho funcionalidades adicionais
Eu sou A:exemplo() e provenho funcionalidades básicas."
É assim o output de "$b->exemplo();"?

[3] Comentário enviado por henrysmith em 03/05/2006 - 09:57h

Já o testei, e sim, é assim.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts