Variáveis em PHP

Em nossa última aula, deixei um pequeno trecho de código exibindo como funcionam as variáveis em PHP:

<?php
// Meu nome
$meu_nome = 'Luiz Otávio';

// Frase com concatenação do meu nome
$frase = 'Meu nome é ' . $meu_nome;

// Exibe a frase
echo $frase;
?>

E, conforme descrevi, hoje vamos entrar em detalhes mais profundos sobre o que são as variáveis e para qual motivo você vai utilizá-las em seu código PHP.

O que são variáveis em PHP?

As variáveis em PHP (ou em qualquer outra linguagem de programação), são objetos capazes de reter e representar valores, expressões e funções no tempo de execução do script. Cada variável está associada a uma posição de memória do seu computador ou servidor.

Por exemplo: Suponhamos que eu tenha um script onde existem milhares de linhas de código onde devo exibir meu nome (Luiz Otávio Miranda Figueiredo); para simplificar as coisas, eu poderia criar uma variável chamada lomf ($lomf) com o valor “Luiz Otávio Miranda Figueiredo”; ao invés de escrever Luiz Otávio Miranda Figueiredo todas as vezes, escreveria apenas $lomf. Com isso, o PHP vai entender que $lomf tem o valor “Luiz Otávio Miranda Figueiredo”, e todas as vezes que eu chamar essa variável, seu valor será entregue à parte do código que eu precisar.

Seria, basicamente, como apelidar partes do código.

No PHP, utilizamos o sinal de $ (Cifrão), para representar a criação ou utilização de uma variável. Na representação do nosso exemplo anterior, o código ficaria como no exemplo seguinte:

$lomf = "Luiz Otávio Miranda Figueiredo";

Uma forma simples para imprimir variáveis na tela, é utilizando o comando echo que falamos na aula anterior, assim você já pode deduzir o que o próximo exemplo faz:

echo $lomf;
// Mostra "Luiz Otávio Miranda Figueiredo" na tela do navegador

Lembre-se dos comentários

Para que você não confunda, lembre-se que tudo o que estiver depois dos caracteres // (duas barras), é contado como comentário no PHP, ou seja, não faz parte do código, mas sim observações de texto puro que escrevemos para documentação. Lembre-se que essa parte do código deve ser lida, pois, na maioria delas vou detalhar o que aquele trecho faz.

Exemplo:

// Isto é um comentário, o interpretador do PHP pula esta parte do script

Criando variáveis em PHP

Como descrevi anteriormente, criamos variáveis em PHP utilizando um sinal de cifrão ($) mais o nome que vai identificar a variável. Porém, o primeiro caractere após o cifrão deve ser uma letra ou um underline (_), nunca um número ou um traço (-).

Veja exemplos abaixo:

Correto

<?php
$_variavel               = 'Correto';
$_variavel_              = 'Correto';
$_variável_              = 'Correto';
$Variável                = 'Correto';
$variavel_qualquer       = 'Correto';
$VARIÁVEL_QUALQUER       = 'Correto';
$variavelQualquer        = 'Correto';
$variavel_22_Qualquer_11 = 'Correto';
?>

Perceba que todas as variáveis acima estão criadas de maneira correta e não vão gerar nenhum erro no programa que você estiver criando. Até existem algumas variáveis que apresentam acentos nas palavras e o PHP ainda aceita esses valores.

Observação: Sempre evite utilizar acentos nas suas variáveis, isso pode causar um problema de codificação posteriormente. Como dica, utilize apenas letras (de A a Z), underline (_) ou números (de 0 a 9).

Por fim, lembre-se que os números (de 0 a 9) só podem ser utilizados no meio ou no fim das variáveis, eles nunca devem estar após o cifrão.

Veja exemplos de variáveis criadas incorretamente, nunca faça isso:

<?php
$1variavel         = 'Incorreto';
$ variavel         = 'Incorreto';
$variavel qualquer = 'Incorreto';
$-variavel         = 'Incorreto';
$variavel-qualquer = 'Incorreto';
?>

Criando valores para variáveis em PHP

Uma variável sempre deve ter um valor qualquer, seja uma string, uma função, uma classe, enfim, qualquer coisa em PHP pode estar no valor da variável.

Para nossas aulas, vamos começar devagar e apenas utilizar strings e números.

O valor de uma variável deve vir depois de um sinal de igual (=) após a criação da mesma, ou seja:

$nome = 'João';

Perceba que os valores de strings (como vimos na aula anterior sobre o comando echo) devem estar entre aspas; já os valores numéricos não precisam delas:

<?php
$numero = 22.55;

// Exibe 22.55 na tela
echo $numero;

Concatenando (juntando) variáveis em PHP

Outro fato que você vai precisar muito em PHP é a junção (concatenação) de valores de duas ou mais variáveis.

Para fazer isso, o ponto (.) deve ser utilizado:

<?php
// Cria as variáveis com o valores necessários
$meu_nome = 'Luiz Otávio Miranda Figueiredo';
$minha_idade = 27;

// Exibe uma frase com as variáveis concatenadas
echo 'Olá, meu nome é ' . $meu_nome . ' e minha idade é ' . $minha_idade;

No exemplo anterior, existem duas variáveis com meu nome e minha idade, logo abaixo delas, utilizei o comando “echo” do PHP para exibir uma frase com o valor das variáveis.

Perceba que sempre que for necessário entrar com um comando PHP (como no caso de uma variável), eu preciso fechar as aspas, colocar um ponto, e digitar o comando. Se eu precisar entrar com outro valor que não é um comando, devo colocar outro ponto, abrir aspas, colocar o valor, e fechar as aspas. Se eu precisar fazer isso novamente, devo repetir todo o processo:

<?php
// Cria as variáveis com o valores necessários
$meu_nome = 'Luiz Otávio Miranda Figueiredo';
$minha_idade = 27;
$peso = 80;

// Exibe uma frase com as variáveis concatenadas
echo 'Nome: '   . $meu_nome    . 
     ' Idade: ' . $minha_idade .	
     ' Peso: '  . $peso;

Também perceba que o final da sua linha de código sempre deve terminar com um ponto e vírgula (;). Caso você esqueça, terá um erro na tela do navegador e o código não será executado.

Apesar de o exemplo acima ter três linhas, ele poderia ser criado apenas em uma linha e ainda sim estaria correto.

Dica: Evite fazer esse emaranhado de concatenações, mantenha seu código organizado. O mesmo trecho acima poderia ser atingido com o trecho de código abaixo:

<?php
// Cria as variáveis com o valores necessários
$meu_nome = 'Luiz Otávio Miranda Figueiredo';
$minha_idade = 27;
$peso = 80;

// Exibe uma frase com as variáveis concatenadas
echo 'Nome: '   . $meu_nome;
echo ' Idade: ' . $minha_idade;
echo ' Peso: '  . $peso;

Fica muito mais organizado.

Fazendo conta com variáveis

Como as variáveis também podem receber valores numéricos, também é possível somar, subtrair, multiplicar e dividir seu conteúdo facilmente, veja o exemplo:

$a = 1; 
// $a tem o valor 1

$b = 2; 
// $b tem o valor 2

$c = $a + $b; 
// $c tem o valor de $a(1) + $b(2) = 3

Para que você possa entender melhor, eu poderia dizer sem termos técnicos ou coisas do tipo, que uma variável seria algo parecido com um apelido de uma pessoa, assim como João da Silva Sauro tem apelido de Joãozinho na vida real, no PHP podemos dar um apelido para qualquer coisa utilizando variáveis, como em nosso exemplo anterior, onde $a representou 1, $b o número 2 e $c a soma das duas variáveis ($a + $b), que resultou no número 3.

O mesmo se aplica para subtrair, multiplicar e dividir, veja o exemplo:

$a = 10; 
// $a tem o valor 10
$b = 2; 
// $b tem o valor 2
$c = $a - $b; 
// $c tem o valor de $a(10) menos o valor de $b(2) = 8
$c = $a / $b; 
// $c tem o valor de $a(10) dividido pelo valor de $b(2) = 5
$c = $a * $b;
// $c tem o valor de $a(10) multiplicado pelo valor de $b(2) = 20

Cuidado com as variáveis

No PHP temos algumas variáveis que são predefinidas para utilização, com isso, não podemos utilizar estas variáveis com outro valor, veja um exemplo incorreto da utilização de variáveis predefinidas:

$GLOBALS = "Qualquer valor"; 
// $GLOBALS faz referencia para todas variáveis disponíveis no escopo global

$_SERVER = "Qualquer valor"; 
// $_SERVER contém Informação do servidor e ambiente de execução do script

$_GET = "Qualquer valor"; 
// $_GET contém informações do HTTP GET

$_POST = "Qualquer valor"; 
// $_POST contém informações do HTTP POST

$_FILES = "Qualquer valor"; 
// $_FILES contém dados de arquivos enviados HTTP File Upload

$_REQUEST = "Qualquer valor"; 
// $_REQUEST contém informações das Variáveis de requisição HTTP

$_SESSION = "Qualquer valor"; 
// $_SESSION contém dados das variáveis de sessão

$_ENV = "Qualquer valor"; 
// $_ENV contém valores das variáveis de ambiente

$_COOKIE = "Qualquer valor"; 
// $_COOKIE contém valores dos Cookies HTTP

$php_errormsg = "Qualquer valor"; 
// $php_errormsg contém valores de erros do PHP

$HTTP_RAW_POST_DATA = "Qualquer valor";
// $HTTP_RAW_POST_DATA contém Informação não-tratada do POST

$http_response_header = "Qualquer valor"; 
// $http_response_header contém valores dos cabeçalhos de resposta HTTP

$argc = "Qualquer valor"; 
// $argc contém o número de argumentos passados para o script

$argv = "Qualquer valor"; 
// $argv contém o array de argumentos passados para o script

Todos os exemplos acima estão incorretos e não devem ser utilizados na execução do seu script.

Outro ponto importante que você deve lembrar, é que também não podemos utilizar caracteres especiais (Espaço, -, *, &, |, (), ¨,%, etc) no meio da variável.

Veja outro exemplo de variáveis incorretas:

$Tuts up = "Blog";
// Está incorreto, não podemos utilizar o espaço
// O correto seria:
$Tuts_up = "Blog";

Por fim, devemos saber que o PHP é uma linguagem Case sensitive, ou seja, faz distinção entre letras maiúsculas e minúsculas, logo você já pode deduzir que $Tutsup é diferente de $tutsup, as duas variáveis podem receber valores diferentes no mesmo script.

Por exemplo:

<?php
// Cria as variáveis com o valores necessários
$tutsup = 'blog';
$Tutsup = 'Tutsup';

// Tenho um blog chamado Tutsup
echo 'Tenho um ' . $tutsup . ' chamado ' . $Tutsup;

Aspas duplas e variáveis em PHP

Um ponto interessante das aspas duplas em PHP, é que seu interpretador vai ler o código que estiver dentro delas, por exemplo:

<?php
$meu_nome = 'Luiz Otávio';

// Aspas simples exibe: Meu nome é $meu_nome
echo 'Meu nome é $meu_nome';

// Aspas duplas interpreta o código: Meu nome é Luiz Otávio
echo "Meu nome é $meu_nome";

Perceba que na primeira parte do código utilizei aspas simples, com isso o interpretador do PHP não conseguiu interpretar a variável $meu_nome; então isso foi exibido na tela:

Meu nome é $meu_nome

Na segunda parte do código utilizei aspas duplas, assim o interpretador do PHP conseguiu ler variável $meu_nome:

Meu nome é Luiz Otávio

Talvez seja melhor utilizar aspas duplas do que concatenar variáveis com o ponto, vai depender de você.

Veja um exemplo que mostrei anteriormente neste artigo, porém, agora vou utilizar aspas duplas e não o ponto:

<?php
// Cria as variáveis com o valores necessários
$meu_nome = 'Luiz Otávio Miranda Figueiredo';
$minha_idade = 27;
$peso = 80;

// Exibe: Nome: Luiz Otávio Miranda Figueiredo Idade: 27 Peso: 80
echo "Nome: $meu_nome Idade: $minha_idade Peso: $peso";

Bem mais simples, não?

Escopo das variáveis em PHP

Apesar de ser uma área que ainda vamos chegar neste curso, é importante que você saiba que variáveis pode ter escopo local ou global.

Uma variável global estará disponível em todo o seu script; uma variável local estará disponível somente dentro da função que a criou.

Veja o exemplo abaixo (não se preocupe, você vai aprender isso posteriormente):

<?php
// Cria uma variável comum
$variavel_global = 10;

function soma() {
	// Define que $variavel_global é global
	global $variavel_global;
	
	// Cria uma variável local (apenas dentro da função)
	$variavel_local = 20;
	
	// Soma o valor das duas variáveis
	return $variavel_global + $variavel_local;
}

// Exibe 10 na tela;
echo $variavel_global;

// Exibe um erro na tela dizendo que a variável não está definida
echo $variavel_local;

// Exibe 30 na tela
echo soma();

No exemplo acima, temos uma variável global (que poderá ser acessada fora e dentro da função) e uma variável local, que, se for acessada fora da função, é tratada como variável indefinida.

Variáveis geradas dinamicamente

Outro ponto interessante que você vai ter que utilizar qualquer dia desses, são as variáveis criadas dinamicamente. Apesar de ser um pouco confuso, é importante que você entenda este conceito.

As variáveis criadas dinamicamente são geradas através do valor de outra variável qualquer, por exemplo:

<?php
// Cria uma variável com um valor qualquer
$variavel = 'valor';

// Utilizar o valor da variável para criar uma nova variável com valor
// dinâmico
$$variavel = 'dinâmico';

// Exibe: dinâmico
echo $valor;

Perceba que eu não criei uma variável chamada $valor, ela foi gerada dinamicamente através de dois sinais de cifrão $$ (ao invés de um).

Funciona basicamente assim: tenho uma variável $X com valor V, se eu utilizar $$X, vou utilizar V (valor de $X) para criar uma nova variável $V, veja isso na prática novamente:

<?php
$X = 'V';
$$X = 'Sou o valor de $V';

// Exibe: Sou o valor de $V
echo $V;

Entenda isso, pois, em alguns casos só este método vai resolver seu problema.

Vídeo tutorial

O vídeo abaixo complementa o texto acima:

Link do vídeo: https://www.youtube.com/watch?v=0NEl8d_lRZc

Aulas anteriores

Caso queira acessar o links para aulas anteriores:

Concluindo

Em caso de dúvidas, críticas ou qualquer outra coisa que queira falar, basta deixar um comentário aí abaixo. Estamos ansiosos para ouvir a sua opinião.

Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.