Iniciando no PHP

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. :)

Deixe uma resposta