24 de jul. de 2012

Maratona PHP do Inicante ao Avançado - Parte 3

~ VÍDEO - Variáveis em php



Para que servem as variáveis? As variáveis servem para armazenar dados que podem ser usados em qualquer ponto do nosso código. Cada variável está associada a uma posição de memória de nosso computador. Ao contrário de linguagens como C, Pascal e Delphi, o PHP não é necessário fazer declaração de variáveis. Basta atribuir diretamente um valor a ela, a partir dai já estará criada e associada a um tipo (numérico, alfanumérico entre outros…), conforme o valor que lhe foi atribuído.

 EXEMPLOS: Como já vimos nas aulas anteriores, no PHP as variáveis devem iniciar com o símbolo$. Após esse símbolo deve vir o identificador da variável, ou seja, o nome que a mesma irá possuir e será referenciada em nosso código. Lembrando que esse identificador não pode ser iniciado com números. Podendo ser usado números nas demais posições do identificador, menos na primeira.

Vejamos agora alguns exemplos de variáveis válidas e inválidas:   

 VÁLIDAS
$nota1
$casa20
$bisc8
$time_2_jogos
$celular_c3

INVÁLIDAS
$100vergonha
$5
$20assustar
$60nacadeira
$2_jogos_time

CASE – SENSITIVE (Maiúsculas e Minúsculas) 
É recomendável se utilizar sempre de identificadores com letras minúsculas como padrão adotado, pois o PHP é case – sensitive, fazendo a distinção entre maiúsculas e minúsculas. Se você começar a misturar os dois tipos de letras, pode ocorrer uma confusão na sua utilização de variáveis, já que $nota não é a mesma de $Nota. Imagine agora, se o sistema que você desenvolveu fosse de uma escola, ou até mesmo de uma faculdade e, um aluno tivesse tirado a nota máxima 10. E esse valor esta sendo armazenado na variável $nota (padrão que a maioria dos programadores usa minúsculas). E na hora de você imprimir a nota do aluno, você estivesse usando dessa maneira:


<?php
echo $Nota;
?> 


ESCOPO DAS VARIÁVEIS
 Mais adiante estaremos vendo e falando sobre funções (functions) em PHP. Mais já devemos ir conhecendo um pouco sobre o assunto.

Funções geralmente são trechos de códigos que utilizaremos com uma certa frequência, e para que não tenhamos que estar repetindo toda hora, criamos uma rotina com aqueles códigos e, quando se faz necessário ativamos essa rotina.(Não se preocupem, estaremos vendo com detalhes em breve).

Quando utilizamos uma variável dentro de uma função, pode haver uma outra com o mesmo nome que é utilizada em outra função, ou mesmo no código principal. São espaços utilizados de nossa memória diferentes, fazendo com que cada uma funcione dentro do seu contexto, sendo que a variável usada dentro da função, somente ira funcionar ali. Fora dali seu valor não sera acessível em nenhum outro local.

No entanto, podemos estar usando dentro de uma função o valor de uma variável já existente em nosso script principal. Para que isso seja possível existem duas formas:
  1. Que seja definida como global no iníco da função; 
  2. Utilizar o array predefinido &GLOBALS, que utiliza os nomes das variáveis como chave associativas.
Vejamos um exemplo para que possamos assimilar mais facilmente o que acabamos de citar:
<?php
$num = 5000;
function testa_escopo1(){
$num += 5;
echo $num . "<br>";
}
echo $num . "<br>";
testa_escopo1(); ?>
Salvamos o exemplo acima e, executamos o mesmo. O resultado mostrado na tela sera os valores 5000 e na linha abaixo 5.

Dependendo da configuração do PHP, poderá mostrar inclusive uma mensagem de aviso, informando que existe uma variável não definida (Undefined Variable). Isso ocorre por que a variável $num existente dentro da função testa_escopo1 é válida somente dentro da função, e quando somado seu conteúdo (que dentro da função é nulo) com 5, teremos o resultado 5.

O comando echo que estamos executando fora da função mostrará o valor da variável $num atribuído no início (5000), pois as alterações feitas dentro da função não alteram o valor da variável global.

Muitas vezes temos a necessidade de utilizar o valor da variável global dentro das funções. Vejamos o exemplo

<?php
$num = 5000;
function testa_escopo1(){
global $num;
$num += 5;
echo $num . "<br>";
}
echo $num . "<br>";
testa_escopo1();
?>: 
Novamente salvamos nosso exemplo e executamos, como podemos perceber e idêntico ao exemplo anterior, apenas com a diferença nesse que dentro da função nossa foi inserido agora o global $num .
Agora quando executamos o exemplo, os valores que serão mostrados na tela é 5000 e 5005, isso somente sendo possível por que no início de nossa função indicamos que a variável $num e a mesma utilizada globalmente.
Dessa forma as alterações feitas na variável $num dentro da função alteraram o valor que existia na variável global. Acompanhe agora o nosso próximo exemplo, onde iremos estar utilizando o array $GLOBALS:

<?php
$num = 5000;
function testa_escopo1(){
echo $GLOBALS["num"] . "<br>";
$GLOBALS["num"]++;
}
testa_escopo1();
echo $num; ?>
Ao executar esse exemplo os valores que serão impressos na tela é 5000 e 5001, pois no início da função foi impresso na tela o valor da variável global $num, que era de 5000. Logo após o valor da variável foi alterado devido ao incremento utilizando o array $GLOBALS com a chave associativa de um, passando a valer 5001.
Na nossa próxima aula será abordado sobre as conversões de variáveis, interpolação de variáveis e muito mais…
Não deixem de acessar e conferir e deixem suas duvidas, sugestões, comentários.