Olá Pessoal,

Bem aqui estamos para mais uma Quick Tips desta vez com dicas sobre a linguagem PHP. Com o lançamento do Delphi for PHP em 2007/2008 muitos programadores Delphi win32 viram a oportunidade de "migrar" suas aplicações para Web. Porém ao se aventurar nesta empreitada muitos deles bateram de frente com vários problemas, e isso nada tem haver com a ferramenta em si.

Alguns não conhecem conceitos básicos que está no sangue de quem programa para Web como métodos POST e GET, action de um Form, Sessão, ambiente StateLess e etc. Outros emperravam em não conhecer alguns recursos da linguagem, agora PHP e não Delphi, como por exemplo as Super Globais.

Nesta Tips vamos abordar este assunto e mostrar para vocês o quanto o PHP e flexível se comparado a linguagens compiladas como é o caso do Delphi.

Variáveis no PHP.


No PHP as variáveis não precisam ser declaradas como no Delphi Win32, ou seja, se quer uma variável em um lugar no código basta inseri-la em seu script e pronto. Como se trata de uma linguagem interpretada o PHP deixa o programador mais livre, ou melhor, o programador não fica restrito a sintaxe de compilador. Pois bem, neste contexto uma variável no PHP pode assumir ou ter basicamente três escopos: Local, Global e Superglobal

Local

Dizemos que uma variável e local no PHP quando a definimos dentro de um método, no php declarado como function.Observe o código abaixo:



   function ShowMessage($texto){
       $varlocal = ucwords($texto);
       echo "Mensagem Formatada: $varlocal";
   }


    ShowMessage('este é um teste de chamada de função com variável local');
    echo $varlocal; //esta linha não exibe nada pois não esta se referindo a variável da função e sim criando uma variável nova e vazia

?>

A função acima recebe um texto qualquer e o formata utilizando a função ucwords que coloca a primeira letra de cada palavra em maiúscula. Feito isso exibe o texto formatado no browser. Repare na variável $varlocal. Como ela foi definida dentro da função Showmessage dizemos que seu escopo é local, ou seja, ela só pode ser acessada dentro da função Showmessage.



Global

Uma variável no PHP é chamada de Global quando é declarada dentro de um script e é visível de qualquer lugar do script onde foi declarada. Observe o código abaixo:



    $varlocal = "um texto qualquer aqui para ser formatado";
 

   function ShowMessage(){
       echo "Mensagem Formatada: ".ucwords($varlocal);
   }


    ShowMessage();
    echo $varlocal; //esta linha não e

?>

O código acima possui um erro e não vai funcionar. Lembra que acima eu disse que variáveis declaradas dentro de função são locais ? Como o PHP vai adivinhar que a variável $varlocal dentro da função ShowMessage está se referindo a variável externa a função ? Bem ele não vai saber.

Nestes casos temos que "Avisar" ao PHP que a variável em questão não esta sendo criada agora e sim que faz referencia a uma variável Global, ou seja, esta fora da função. Veja a código correto abaixo:




   $varlocal = "um texto qualquer aqui para ser formatado";
 

   function ShowMessage(){
      global $varlocal;

       echo "Mensagem Formatada: ".ucwords($varlocal);
   }


    ShowMessage();
    echo $varlocal; //esta linha não e

?>

A Linha em vermelho mostra a alteração. Agora o PHP sabe que não deve criar uma variável $varlocal dentro da função e sim acessar uma variável externa.


Bem pessoal eu fico por aqui na próxima tips eu encerro o assunto falando sobre as Super Globais.

Abraços e até lá.