Variáveis
Esta aula aborda o conceito de variáveis em PHP, incluindo declaração com o cifrão, tipagem dinâmica, escopo de variáveis e o recurso de variáveis variáveis. O aluno aprenderá a utilizar variáveis de forma eficiente e compreenderá as particularidades da linguagem.
Variáveis são um dos conceitos fundamentais em qualquer linguagem de programação. No PHP, elas são representadas pelo símbolo $ seguido de um nome, e possuem características únicas como tipagem dinâmica e escopos bem definidos. Nesta aula, exploraremos desde a declaração básica até recursos avançados como variáveis variáveis, fornecendo exemplos práticos para consolidar o aprendizado.
Declaração e $
Em PHP, toda variável deve começar com o símbolo $ seguido de um nome que comece com uma letra ou sublinhado (_), e pode conter letras, números e sublinhados. O cifrão é obrigatório e diferencia variáveis de outras construções da linguagem.
Exemplos de declaração:
$nome = "João";
$idade = 25;
$_salario = 5000.50;
$valor1 = 100;O PHP é sensível a maiúsculas e minúsculas em nomes de variáveis, ou seja, $nome e $Nome são variáveis diferentes. Além disso, não é necessário declarar o tipo da variável; ela assume o tipo conforme o valor atribuído.
Tipagem dinâmica
PHP é uma linguagem de tipagem dinâmica, o que significa que o tipo de uma variável é determinado pelo valor que ela armazena e pode mudar durante a execução do script. Isso traz flexibilidade, mas exige cuidado para evitar erros inesperados.
Exemplo de mudança de tipo:
$valor = "10"; // string
echo gettype($valor); // string
$valor = $valor + 5; // converte para inteiro
echo gettype($valor); // integerO PHP converte automaticamente tipos em operações, como no exemplo acima, onde a string "10" foi convertida para inteiro ao somar com 5. Funções como gettype() e var_dump() ajudam a inspecionar o tipo e valor das variáveis.
Escopo
Escopo em PHP refere-se à região do código onde uma variável é acessível. Os principais escopos são: global, local (dentro de funções) e estático.
Variáveis declaradas fora de funções têm escopo global, mas não são automaticamente acessíveis dentro de funções. Para usar uma variável global dentro de uma função, é necessário usar a palavra-chave global ou o array $GLOBALS.
$x = 10; // global
function teste() {
global $x;
echo $x; // 10
}Variáveis locais são criadas dentro de funções e não podem ser acessadas fora delas. Já variáveis estáticas (static) mantêm seu valor entre chamadas da função, mas são locais em escopo.
function contador() {
static $cont = 0;
$cont++;
echo $cont;
}
contador(); // 1
contador(); // 2Variáveis variáveis
Variáveis variáveis permitem usar o valor de uma variável como nome de outra variável. Isso é feito colocando um cifrão adicional antes de uma variável que contém o nome desejado.
Exemplo:
$nome = "João";
$$nome = "30"; // cria $João com valor "30"
echo $João; // 30Isso pode ser útil em situações como criação dinâmica de variáveis, mas deve ser usado com cautela para não tornar o código confuso. Na prática, é preferível usar arrays associativos para mapear nomes a valores.
Boas práticas
Use nomes descritivos e siga um padrão (camelCase ou snake_case). Evite variáveis variáveis em código complexo. Sempre inicialize variáveis antes do uso para evitar erros. Utilize isset() para verificar se uma variável existe.
Referências
- PHP: Básico sobre variáveis
- PHP: Escopo de variáveis
- PHP: Variáveis variáveis
- PHP: gettype
- PHP: var_dump
Exercícios
- Crie uma variável chamada
$cidadecom o valor "São Paulo" e exiba seu tipo usandogettype().✓ Resposta:$cidade = "São Paulo"; echo gettype($cidade); // string - Declare uma variável global
$contador = 0e dentro de uma função incremente seu valor usando a palavra-chaveglobal. Exiba o valor após chamar a função.✓ Resposta:$contador = 0; function incrementar() { global $contador; $contador++; } incrementar(); echo $contador; // 1 - Utilize variáveis variáveis para criar uma variável com nome dinâmico: a partir de
$animal = "cachorro", crie$cachorrocom valor "Rex" e exiba-o.✓ Resposta:$animal = "cachorro"; $$animal = "Rex"; echo $cachorro; // Rex - Explique a diferença entre escopo global e local com um exemplo de código que cause erro ao tentar acessar uma variável local fora da função. ✓ Resposta:
function teste() { $local = "dentro da função"; } teste(); echo $local; // Erro: variável indefinidaA variável
$localsó existe dentro da função, causando erro ao tentar acessá-la fora. - Crie uma função que use uma variável estática para contar quantas vezes foi chamada. Chame-a três vezes e exiba o valor. ✓ Resposta:
function contar() { static $chamadas = 0; $chamadas++; echo $chamadas . " "; } contar(); // 1 contar(); // 2 contar(); // 3