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.252 ]

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

Verdades e mentiras sobre tecnologias WEB

Ato 2 - comandos de saída, constantes e operadores em PHP (básico)

Introdução ao PHP-GTK

Tratamento de exceções do PHP: uma introdução para iniciantes

Sistema de notícias em PHP

  
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