W3docs

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;     // boolean

O 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.

php— editable, runs on the server

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çãoRetorna 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) — destroyed

isset é 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 reference

As 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;      // Hello

Isso é 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");   // 11

Isso 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. $counter ou $totalPrice documenta a intenção muito melhor do que $x ou $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.

Practice

Prática
Em PHP, quais das seguintes opções são formas de manipular variáveis?
Em PHP, quais das seguintes opções são formas de manipular variáveis?

Practice

Prática
Em PHP, quais das seguintes opções são formas de manipular variáveis?
Em PHP, quais das seguintes opções são formas de manipular variáveis?
Was this page helpful?