Variável em PHP é um nome que guarda um valor e que pode passar a guardar outro depois. Você cria uma escrevendo um cifrão, o nome, um sinal de igual e o valor: $nomeAluno = "Ana";. A partir dali, todo lugar onde você escrever $nomeAluno o PHP entende "Ana" — até você mandar guardar outra coisa nesse mesmo nome.
O sinal de igual aqui não é o igual da matemática. Ele não afirma que os dois lados são iguais; ele manda guardar o que está à direita no nome que está à esquerda. Por isso $saldo = $saldo - 30; faz todo sentido em programação e nenhum na aula de álgebra: o PHP calcula o lado direito primeiro e depois guarda o resultado em $saldo.
Variáveis são a primeira coisa que se aprende em qualquer linguagem porque tudo depende delas. Sem guardar valores, um programa não consegue comparar, somar, repetir nem decidir nada. Este guia cobre a sintaxe, os tipos que aparecem todo dia, a diferença entre aspas simples e duplas, como escolher nomes que você vai entender daqui a um mês e os quatro erros que todo iniciante comete — com a mensagem exata que o PHP mostra em cada um.
A sintaxe, peça por peça
Um exemplo mínimo que já roda:
<?php
$nomeAluno = "Ana";
$idade = 17;
echo "Aluno: $nomeAluno\n";
echo "Idade: $idade\n";
Saída:
Aluno: Ana
Idade: 17
Quatro regras estão embutidas aí:
- O cifrão é obrigatório. Sempre. Na criação e em todo uso depois.
nomeAlunosem cifrão não é variável para o PHP. - Toda instrução termina em ponto e vírgula. É o ponto final da frase; sem ele o PHP acha que a linha continua na de baixo.
- Texto vai entre aspas, número não.
"Ana"com aspas,17sem. - O nome diferencia maiúscula de minúscula.
$nomeAlunoe$nomealunosão duas variáveis diferentes, e essa é a origem de umas boas horas perdidas.
O \n no fim de cada texto é a quebra de linha. Ele só funciona dentro de aspas duplas — dentro de aspas simples, \n aparece na tela como duas letras mesmo.
Os tipos que você usa todo dia
PHP não exige que você declare o tipo: ele descobre pelo valor que você guardou. Na prática, quatro tipos cobrem quase tudo no começo.
| Tipo | Guarda | Exemplo |
|---|---|---|
| string | Texto, sempre entre aspas | $nomeProduto = "Pão de forma"; |
| int | Número inteiro, sem casas decimais | $quantidade = 3; |
| float | Número com casas decimais, separadas por ponto | $precoUnitario = 8.75; |
| bool | Verdadeiro ou falso | $temDesconto = true; |
Duas armadilhas moram nessa tabela. A primeira: número decimal em PHP usa ponto, não vírgula. Escrever 8,75 não guarda oito reais e setenta e cinco centavos — é erro de sintaxe. A vírgula só volta na hora de mostrar o valor formatado ao usuário.
A segunda aparece quando você tenta imprimir um booleano:
<?php
$nomeProduto = "Pão de forma";
$quantidade = 3;
$precoUnitario = 8.75;
$temDesconto = true;
echo $nomeProduto . "\n";
echo $quantidade . "\n";
echo $precoUnitario . "\n";
echo $temDesconto . "\n";
Saída:
Pão de forma
3
8.75
1
A última linha imprimiu 1, não true. Ao ser transformado em texto, true vira "1" e false vira texto vazio — ou seja, echo $temDesconto; com false não mostra absolutamente nada. Booleano não foi feito para ser exibido; foi feito para ser testado numa condição, como você vai ver em if e else em PHP.
Repare também no ponto entre os pedaços: em PHP, o ponto é o operador que gruda dois textos. "Total: " . $valor junta os dois num texto só.
Aspas duplas e aspas simples
Essa diferença confunde muita gente e é simples de entender: aspas duplas leem as variáveis que estão dentro do texto; aspas simples não.
<?php
$cidade = "Recife";
echo "Bom dia, $cidade!\n";
echo 'Bom dia, $cidade!' . "\n";
Saída:
Bom dia, Recife!
Bom dia, $cidade!
Colocar a variável dentro das aspas duplas se chama interpolação, e é o jeito mais legível de montar uma frase. A alternativa é concatenar com ponto: echo "Bom dia, " . $cidade . "!"; dá exatamente o mesmo resultado. Use o que ficar mais claro de ler.
E não, escrever "Total: R$ 50,00" não dá problema: o PHP só tenta ler uma variável quando o cifrão vem colado a uma letra ou sublinhado. Cifrão seguido de espaço é apenas um cifrão.
Nomes bons e nomes ruins
O nome da variável é documentação. Comparação direta:
| Ruim | Bom | Por quê |
|---|---|---|
$x |
$precoTotal |
Uma letra não diz o que guarda |
$a1, $a2 |
$notaUm, $notaDois |
Numerar nomes esconde o significado |
$dados |
$listaAlunos |
Genérico demais para achar depois |
$valor_total_da_compra_do_cliente |
$totalCompra |
Longo demais cansa e erra na digitação |
A convenção mais usada em PHP é o camelCase: primeira palavra em minúscula e as seguintes com inicial maiúscula, sem espaço e sem separador — $precoTotal, $nomeAluno, $totalCompra. Regras técnicas que o PHP impõe: o nome começa com letra ou sublinhado (nunca com número), aceita letras, números e sublinhado, e não aceita espaço nem hífen. Evite acento nos nomes; no texto guardado dentro deles, acento é normal e bem-vindo.
Os quatro erros clássicos
Todo mundo comete os quatro. O que separa quem avança rápido de quem trava é ler a mensagem em vez de fechar a tela — a mensagem quase sempre entrega o número da linha.
1. Esquecer o cifrão.
<?php
nomeAluno = "Ana";
echo nomeAluno;
PHP Parse error: syntax error, unexpected token "=" on line 3
Sem o cifrão, o PHP lê nomeAluno como um nome solto e não espera um sinal de igual ali.
2. Esquecer o ponto e vírgula.
<?php
$nomeAluno = "Ana"
echo $nomeAluno;
PHP Parse error: syntax error, unexpected token "echo" on line 4
Detalhe importante: o erro acusa a linha 4, mas o problema está na 3. Como a linha 3 não terminou, o PHP continuou lendo e só estranhou ao chegar no echo. Sempre confira também a linha anterior à apontada.
3. Esquecer as aspas no texto.
<?php
$nomeAluno = Ana;
echo $nomeAluno;
PHP Fatal error: Uncaught Error: Undefined constant "Ana" on line 3
Sem aspas, o PHP acha que Ana é um nome de constante que alguém definiu em algum lugar — e não encontra.
4. Usar uma variável que ainda não existe. Escrever $nomeAluno num arquivo onde você criou $nomealuno gera um aviso de variável indefinida e imprime vazio. O programa até roda, o resultado é que sai errado. Esse é o erro mais chato dos quatro justamente por não quebrar nada.
Dois exemplos completos
Fechamento de compra numa padaria, com o valor formatado no padrão brasileiro:
<?php
$precoUnitario = 12.50;
$quantidade = 4;
$precoTotal = $precoUnitario * $quantidade;
echo "Total: R$ " . number_format($precoTotal, 2, ',', '.') . "\n";
Saída:
Total: R$ 50,00
A função number_format recebe o número, quantas casas decimais mostrar, qual símbolo usar como vírgula decimal e qual usar como separador de milhar. É ela que transforma 50 em 50,00 e 1234.5 em 1.234,50.
E o caso que mostra a variável mudando de valor ao longo do programa:
<?php
$saldo = 100;
echo "Saldo inicial: $saldo\n";
$saldo = $saldo - 30;
echo "Depois da compra: $saldo\n";
$saldo = $saldo + 50;
echo "Depois do depósito: $saldo\n";
Saída:
Saldo inicial: 100
Depois da compra: 70
Depois do depósito: 120
É esse comportamento — guardar, ler, recalcular e guardar de novo — que sustenta os contadores e acumuladores dos laços de repetição, o assunto natural depois deste.
Para praticar sem instalar nada, vale usar um ambiente que roda PHP direto no navegador. É assim que os exercícios funcionam no Aulab: o aluno escreve, executa e vê a saída na mesma tela, envia, e o professor aprova ou devolve com um comentário dizendo o que ajustar. Para variáveis, esse ciclo curto ajuda muito — a maior parte dos erros dessa etapa some quando alguém aponta o cifrão que faltou.
Perguntas frequentes
Como declarar uma variável em PHP?
Escrevendo cifrão, nome, sinal de igual e valor, terminando com ponto e vírgula: $nomeAluno = "Ana";. Não existe palavra de declaração separada nem é preciso informar o tipo — o PHP identifica o tipo pelo valor guardado.
Por que toda variável em PHP começa com cifrão?
Porque é assim que o interpretador distingue uma variável de um nome de função ou de constante. O cifrão é obrigatório na criação e em todo uso posterior; sem ele o PHP acusa erro de sintaxe.
Qual a diferença entre aspas simples e aspas duplas?
Aspas duplas leem as variáveis escritas dentro do texto e interpretam sequências como a quebra de linha. Aspas simples mostram o conteúdo literalmente, incluindo o nome da variável com cifrão e tudo.
Preciso declarar o tipo da variável em PHP?
Não. O PHP define o tipo pelo valor atribuído e a mesma variável pode guardar um texto agora e um número depois. Tipos declarados existem em parâmetros e retornos de função, mas isso é assunto de mais adiante.
Por que meu echo de uma variável booleana não mostra nada?
Porque ao virar texto o valor true aparece como 1 e o valor false aparece como texto vazio. Booleano serve para ser testado numa condição, não para ser exibido diretamente.