W3docs

Introdução às Variáveis PHP

Em PHP, uma variável é um local de memória usado para armazenar valores, indicado pelo sinal de cifrão ($) seguido pelo nome da variável.

Em PHP, uma variável é um contêiner nomeado que armazena um valor na memória. As variáveis são indicadas por um sinal de cifrão ($) seguido pelo nome da variável. O valor que uma variável contém pode ser definido, alterado e lido a qualquer momento durante a execução de um script PHP, o que torna um script dinâmico em vez de um bloco fixo de saída.

Este capítulo aborda como declarar variáveis, as regras de nomenclatura que você deve seguir, os tipos de dados que uma variável pode conter, como PHP determina o tipo de uma variável automaticamente, e as operações cotidianas que você realizará com variáveis.

Declarando uma Variável

Uma variável é criada no momento em que você atribui um valor a ela. PHP não possui uma palavra-chave separada de "declaração" — a atribuição é a declaração:

PHP define uma variável

<?php
$variable_name = value;

Aqui $variable_name é o nome e value é o que você armazena nela. Um exemplo completo e funcional:

<?php
$greeting = "Hello, World!";
$year     = 2024;

echo $greeting;   // Hello, World!
echo "\n";
echo $year;       // 2024

Saída:

Hello, World!
2024

Você não precisa atribuir um valor a uma variável quando a menciona, mas ler uma variável que nunca foi atribuída gera um aviso e é avaliada como NULL, portanto, sempre atribua antes de usar.

Regras de Nomenclatura

Um nome de variável PHP válido:

  • Começa com uma letra ou um sublinhado (_) — nunca com um dígito.
  • Contém apenas letras, números e sublinhados após o primeiro caractere.
  • É sensível a maiúsculas e minúsculas: $name, $Name e $NAME são três variáveis diferentes.
<?php
$user_age = 30;   // valid
$_token   = "ab"; // valid (starts with underscore)
$2cool    = 1;    // INVALID — cannot start with a digit

Por convenção, variáveis PHP usam snake_case ($first_name), embora camelCase ($firstName) também seja comum. Escolha um estilo e mantenha a consistência.

Tipos de Dados que uma Variável Pode Conter

PHP é dinamicamente tipado: você nunca declara um tipo, e a mesma variável pode conter tipos diferentes ao longo de sua vida útil. O tipo é inferido a partir do valor que você atribui.

  • String — uma sequência de caracteres: $name = "John Doe";
  • Integer — um número inteiro: $age = 25;
  • Float — um número com ponto decimal: $average = 7.5;
  • Booleantrue ou false: $is_active = true;
  • Array — uma coleção ordenada de valores: $fruits = ["apple", "banana", "orange"];
  • Object — uma instância de uma classe: $person = new Person();
  • NULL — uma variável sem valor: $email = null;

Você pode inspecionar o valor e o tipo de uma variável em tempo de execução com var_dump():

<?php
$age     = 25;
$average = 7.5;
$name    = "Sara";

var_dump($age);
var_dump($average);
var_dump($name);

Saída:

int(25)
float(7.5)
string(4) "Sara"

Para uma análise mais detalhada de cada tipo, consulte Tipos de Dados PHP.

Tipagem Fraca e Coerção de Tipos

Como o tipo de uma variável vem de seu valor, reatribuir muda o tipo:

<?php
$x = 10;       // $x is an integer
$x = "ten";    // now $x is a string — perfectly legal
$x = 3.14;     // now $x is a float

PHP também converte tipos automaticamente em muitas expressões (chamado de coerção de tipos). Por exemplo, uma string numérica é tratada como número em operações aritméticas:

<?php
$result = "5" + 3;
echo $result;   // 8 — the string "5" is converted to the integer 5

Essa conveniência pode surpreender, portanto, quando você precisa que um valor seja de um tipo específico, converta-o explicitamente: (int) $value, (float) $value ou (string) $value.

Operações com Variáveis

Quando você tem variáveis, pode combiná-las e compará-las.

Atribuição — armazenar um valor:

<?php
$name = "John Doe";

Aritmética — somar, subtrair, multiplicar e assim por diante:

<?php
$a = 8;
$b = 3;
$sum = $a + $b;
echo $sum;   // 11

Comparação — testar a relação entre valores; o resultado é um boolean:

<?php
$a = 5;
$b = 5;
$is_equal = ($a == $b);
var_dump($is_equal);   // bool(true)

Concatenação — unir strings com o operador ponto (.):

<?php
$first_name = "John";
$last_name  = "Doe";
$full_name  = $first_name . " " . $last_name;
echo $full_name;   // John Doe

Para a lista completa de operadores, consulte Operadores PHP.

Escopo de Variáveis

Onde você declara uma variável determina onde ela pode ser lida. Uma variável criada no corpo principal de um script não está disponível automaticamente dentro de uma função, e vice-versa:

<?php
$message = "outside";

function show() {
    echo $message;   // Notice: undefined variable — scope does not reach in
}

show();

Para usar uma variável externa dentro de uma função, passe-a como argumento ou importe-a com a palavra-chave global. O escopo é uma fonte comum de bugs para iniciantes, portanto, vale a pena ler o capítulo dedicado ao Escopo de Variáveis PHP.

Constantes vs. Variáveis

Quando um valor nunca deve ser alterado, use uma constante em vez de uma variável. Constantes não têm o prefixo $ e são definidas com define() ou a palavra-chave const. Consulte Constantes PHP para obter detalhes.

Conclusão

Variáveis PHP são os blocos de construção de todo script: elas armazenam e manipulam os dados com os quais seu programa trabalha. Os principais pontos a reter são que variáveis começam com $, os nomes são sensíveis a maiúsculas e minúsculas e não podem começar com um dígito, e PHP infere o tipo a partir do valor, de modo que uma única variável pode conter strings, números, arrays, objetos ou NULL ao longo de sua vida útil. A partir daqui, continue com Tipos de Dados PHP e Operadores PHP para colocar as variáveis em uso.

Prática

Prática
Quais das afirmações a seguir são verdadeiras sobre variáveis PHP?
Quais das afirmações a seguir são verdadeiras sobre variáveis PHP?
Was this page helpful?