Manipulação de Variáveis em PHP
Aprenda técnicas de manipulação de variáveis em PHP: verificar existência, alterar tipos, referências, variáveis variáveis e funções variáveis.
Introdução
Manipulação de variáveis é o conjunto de técnicas usadas para criar, inspecionar, copiar e remover os valores com que o seu script PHP trabalha. Esta página vai além da simples atribuição de um valor: abrange a verificação de existência de variáveis (isset), a descoberta e alteração do seu tipo (gettype / settype), a criação de referências e as funcionalidades mais dinâmicas que o PHP oferece — variáveis variáveis e funções variáveis.
Se nunca declarou uma variável PHP antes, comece com PHP Variables e PHP Data Types, e depois volte aqui para as técnicas de manipulação.
Declarando e atribuindo variáveis
Em PHP, o nome de uma variável começa com um cifrão ($) seguido de uma letra ou sublinhado. Não é necessário declarar um tipo — o PHP o infere a partir do valor atribuído com o operador =.
<?php
$name = "John"; // string
$age = 30; // integer
$price = 19.99; // float
$active = true; // booleanO PHP é dinamicamente tipado: a mesma variável pode conter uma string agora e um número depois. A variável simplesmente assume o tipo do último valor atribuído.
Interpolação de strings
Dentro de strings com aspas duplas (e heredocs), o PHP substitui uma variável pelo seu valor. Strings com aspas simples são interpretadas literalmente e não fazem interpolação.
Verificando e removendo variáveis
Antes de ler uma variável que pode não existir, teste-a. Estas três funções são o núcleo da manipulação segura de variáveis:
| Função | Retorna true quando... |
|---|---|
isset($var) | a variável existe e não é null |
empty($var) | a variável não está definida, é null, 0, "", "0", false ou [] |
unset($var) | (sem retorno) destrói a variável, de modo que isset passa a retornar false |
<?php
$user = null;
var_dump(isset($user)); // bool(false) — null counts as "not set"
$count = 0;
var_dump(empty($count)); // bool(true) — 0 is "empty"
$temp = 10;
unset($temp);
var_dump(isset($temp)); // bool(false) — destroyedisset é a verificação mais utilizada, especialmente com superglobals como $_GET e $_POST, onde uma chave pode estar ausente.
Inspecionando e alterando tipos
Como o PHP infere tipos, às vezes é necessário descobrir qual o tipo atual de um valor, ou forçar uma conversão.
<?php
$price = 19.99;
echo gettype($price); // double (PHP's name for float)
$input = "42";
settype($input, "integer");
echo $input + 8; // 50 — now a real integer, not the string "42"Use gettype para obter um nome de tipo legível e settype (ou um cast como (int)) para converter no local. Para comparações, prefira as funções com reconhecimento de tipo is_int(), is_string(), is_array(), entre outras.
Manipulação avançada de variáveis
Quando os fundamentos estiverem dominados, o PHP oferece mais três técnicas dinâmicas. Use-as com moderação — são poderosas, mas podem prejudicar a legibilidade.
Referências de variáveis
Uma referência faz com que dois nomes apontem para o mesmo valor subjacente. Atribua com =& e qualquer alteração feita por um dos nomes será visível pelo outro.
<?php
$count = 1;
$alias =& $count; // $alias is now another name for $count
$alias = 5;
echo $count; // 5 — changed through the referenceAs referências são mais importantes quando se passa argumentos para funções por referência (function f(&$x)), permitindo que a função modifique a variável do chamador.
Variáveis variáveis
Uma variável variável usa o valor de uma variável como nome de outra. A sintaxe $$ lê a variável interna para construir o nome da variável externa.
<?php
$var = "greeting";
$$var = "Hello"; // creates $greeting
echo $greeting; // HelloIsso é ocasionalmente útil para nomes de campos dinâmicos, mas um array associativo é quase sempre mais claro e seguro.
Funções variáveis
Se uma variável string contém o nome de uma função, adicionar () chama essa função dinamicamente.
<?php
$fn = "strlen";
echo $fn("Hello World"); // 11Isso permite tabelas de despacho simples e callbacks. O PHP moderno geralmente prefere callables de primeira classe ou closures, mas as funções variáveis continuam sendo válidas e rápidas.
Boas práticas
- Use nomes significativos.
$counterou$totalPricedocumenta a intenção muito melhor do que$xou$tmp. - Inicialize antes de usar. Ler uma variável indefinida gera um aviso; defina um valor padrão ou proteja com
isset(). - Evite globais. Passe valores como argumentos de função ou encapsule o estado em objetos, em vez de depender de
global. Consulte Variables Scope para entender por que o isolamento de escopo é importante. - Prefira arrays a variáveis variáveis. São mais fáceis de iterar, depurar e entender.
- Use declarações de tipo. Parâmetros tipados (
function setAge(int $age)) detectam erros cedo e tornam o código autodocumentado.
Resumo
A manipulação de variáveis em PHP vai além da atribuição: inclui verificar existência com isset/empty, remover valores com unset, inspecionar e converter tipos com gettype/settype, e as ferramentas dinâmicas — referências, variáveis variáveis e funções variáveis. Recorra às técnicas simples e explícitas no dia a dia e reserve as dinâmicas para os casos raros que realmente as exigem.