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.