O início.
As primeiras linhas escritas em determinada linguagem
geralmente incluem a saudação “Alô mundo!” (Hello world!)
Vou criar meu primeiro código PHP usando uma mensagem diferente, até porque a origem do costume reflete certa superstição que não me agrada. Começo então a escrever linhas para exibir o grito da Tartaruga Touché no meu navegador:
<?php echo "Touché!"; ?>
Fácil demais, não é?
O interessante do PHP é que ele é orientado a objeto. Sendo assim, por que não começar com orientação a objeto logo no primeiro exemplo? Temos então um código inicial usando objeto:
<?php
/**
* @author Wanc Guttemberg
* @copyright 2007
**/
class espadachim
{
private $frase;
// Constrói o objeto
function __construct()
{
echo "Criando objeto. <br>";
$this->frase = "<b>Touché!</b><br>";
}
// Destrói o objeto
function __destruct()
{
echo "Destruindo objeto.<br>";
$this->frase = '';
}
// Retorna o grito de guerra Touché!.
function gritar()
{
echo "Gritando : <br>";
echo $this->frase;
}
} // classe tipo espadachim
// cria um objeto espadachim
$TartarugaTouche = new espadachim();
// Exibe touchpe no browser.
echo $TartarugaTouche->gritar();
?>
Desta vez o código já não é tão simples. Eu ainda apanhei um pouco com o conceito do uso do “this” cometendo um erro não muito óbvio. O método “gritar()” estava assim
function gritar()
{
echo "Gritando : <br>";
echo $frase;
}
O resultado foi diferente do que eu esperava, pois o PHP a encarou como uma nova variável local $frase dentro do método e não como o campo $frase da classe. Sendo assim ele não mostrou o conteúdo de $frase.
Para resolver isto tive que colocar a chave “this” para indicar que “$frase” pertencia ao objeto espadachim.
Reparou que não precisei definir o tipo da variável $frase? Esta definição dinâmica, em tempo de execução de acordo com o conteúdo é, a meu ver, o charme da linguagem.
Claro que pode ser confuso trabalhar com uma variável mutante, mas creio que isto não é defeito do PHP, basta só não misturar as coisas. Devo me acostumar com isto se quiser falar bem em PHPnês.


Calvin