Palavras-chave: PHP5, Orientação a objetos, classes, unicidade, __toString()

Um dos conceitos na orientação a objetos é a unicidade. Cada objeto é único no sistema, não existem dois objetos iguais.

Você constata isto simplesmente imprimindo o objeto na tela, pois o sistema irá exibir o OID (object identificator) do objeto em memória. Cada objeto possui um OID diferente.

Caso você queira que o sistema exiba outra informação ao imprimir o objeto, utilize o método __toString(), ele permite redefinir o comportamento padrão ao se utilizar, por exemplo, o comando “print” ou “echo” sobre um objeto, sendo interessante para fins de debug.

A seguir temos duas classes e um objeto de cada classe. A primeira não utiliza o __toString(), sendo exibido o OID do objeto, a segunda utiliza, sendo exibido o nome da pessoa.

<?php
class Automovel
{
    private $modelo;

    function setModelo($modelo)
    {
        $this->modelo = $modelo;
    }
}

class Pessoa
{
    private $nome;

    function setNome($nome)
    {
        $this->nome = $nome;
    }

    function __toString()
    {
        return '#'.$this->nome;
    }
}

$palio = new Automovel;
$palio->setModelo('Palio ED 1.0');
echo $palio; // resultado = Object id #1
echo "\\n<br>\\n"; //quebra linha

$maria = new Pessoa;
$maria->setNome('Mariana Pereira');
echo $maria; // resultado = #Mariana Pereira
echo "\\n<br>\\n"; //quebra linha
?>