Variáveis em PHP
Entenda o que são variáveis, como declará-las em PHP e as regras de nomenclatura que todo desenvolvedor precisa conhecer.
O que é uma variável?
Uma variável é um espaço na memória do computador onde guardamos um valor para usar depois. Pense como uma caixa com um rótulo: o rótulo é o nome da variável, e o conteúdo da caixa é o valor.
Em PHP, toda variável começa obrigatoriamente com o símbolo $ seguido do nome. Isso é exclusivo do PHP e diferencia a linguagem de outras como Python ou JavaScript.
2
3// Declarando variáveis — sempre com $
4$nome = "Ana";
5$idade = 22;
6$altura = 1.68;
7
8// Exibindo os valores
9echo $nome; // Ana
10echo $idade; // 22
11echo $altura; // 1.68
12?>
$nome, $Nome e $NOME são três variáveis diferentes em PHP. Atenção às letras maiúsculas e minúsculas!
Regras de nomenclatura
Para nomear variáveis em PHP, siga estas regras obrigatórias:
- Deve começar com $ seguido de letra ou underscore (
_) - Não pode começar com número —
$1nomeé inválido - Pode conter letras, números e underscores
- Não pode ter espaços — use
$minha_variavelou$minhaVariavel - É case-sensitive —
$xe$Xsão diferentes
O padrão mais comum em PHP para variáveis é o snake_case: palavras separadas por underscore. Ex: $nome_completo, $data_nascimento, $total_pedido.
Variáveis são dinâmicas
Diferente de linguagens como Java ou C, em PHP você não precisa declarar o tipo da variável. O PHP descobre automaticamente o tipo pelo valor atribuído. Além disso, uma variável pode mudar de valor (e de tipo) a qualquer momento:
2
3$x = 10; // $x é int
4echo gettype($x); // "integer"
5
6$x = "PHP"; // agora $x é string
7echo gettype($x); // "string"
8
9$x = true; // agora $x é boolean
10echo gettype($x); // "boolean"
11?>
// ATIVIDADE INTERATIVA
Teste seu conhecimento!
Qual das opções abaixo é uma declaração de variável VÁLIDA em PHP?
// AMBIENTE DE CÓDIGO
Exercícios Propostos
Questões de fixação do conteúdo desta aula
Explique com suas palavras por que em PHP toda variável precisa do símbolo $ antes do nome. Qual seria a vantagem disso para quem lê o código?
Das variáveis abaixo, identifique quais são válidas e quais são inválidas em PHP. Para as inválidas, explique o motivo:
$_nome · $2valor · $meu nome · $totalPedido · $class
Usando o ambiente de código acima, crie um script PHP que declare 5 variáveis com informações sobre você (nome, idade, cidade, profissão, linguagem favorita) e exiba todas usando echo, cada uma em uma linha, com um rótulo descritivo.
Strings — texto em PHP
Aprenda a trabalhar com texto em PHP: como criar strings, concatenar, e usar as funções nativas mais importantes para manipulação de texto.
O que é uma String?
Uma string é qualquer sequência de caracteres — letras, números, símbolos, espaços. Em PHP, strings são delimitadas por aspas simples ' ' ou aspas duplas " ".
A diferença fundamental entre elas é como o PHP processa o conteúdo interno:
2
3$linguagem = "PHP";
4
5// Aspas duplas: interpreta variáveis e escapes
6echo "Eu aprendo $linguagem!\n"; // Eu aprendo PHP!
7
8// Aspas simples: tudo é texto literal
9echo 'Eu aprendo $linguagem!\n'; // Eu aprendo $linguagem!\n
10?>
Concatenação com ponto (.)
Para unir duas ou mais strings em PHP, usamos o operador . (ponto). É diferente de JavaScript (que usa +) e Python (que também usa +):
2
3$primeiro = "PHP";
4$segundo = "Master";
5
6// Concatenando com ponto
7$resultado = $primeiro . " " . $segundo;
8echo $resultado; // PHP Master
9
10// Concatenação e atribuição (.=)
11$frase = "Aprender ";
12$frase .= "PHP";// equivale a: $frase = $frase . "PHP"
13echo $frase; // Aprender PHP
14?>
Funções nativas de String
PHP tem centenas de funções nativas para manipular strings. As mais usadas no dia a dia:
2
3$texto = " Olá, Mundo PHP! ";
4
5echo strlen($texto); // Tamanho: 20
6echo strtoupper($texto); // MAIÚSCULAS
7echo strtolower($texto); // minúsculas
8echo trim($texto); // Remove espaços das bordas
9echo str_replace("Mundo", "Dev", $texto); // Substitui
10echo strpos($texto, "PHP"); // Posição de "PHP"
11echo substr($texto, 7, 5); // Extrai 5 chars a partir da pos 7
12?>
Funções como strlen() contam bytes, não caracteres. Para textos com acentos (UTF-8), use mb_strlen() — o prefixo mb_ indica "multibyte".
// ATIVIDADE INTERATIVA
Qual função devo usar?
Preencha com a função PHP correta para cada situação.
Converter para maiúsculas: ($texto)
Substituir texto: ("a", "b", $texto)
Remover espaços das bordas: ($texto)
// AMBIENTE DE CÓDIGO
Exercícios Propostos
Questões de fixação do conteúdo desta aula
Qual é a diferença entre aspas simples e aspas duplas em PHP? Escreva um exemplo que demonstre o comportamento diferente de cada uma ao usar uma variável dentro da string.
Usando o ambiente de código acima, crie um script PHP que receba a string " olá, mundo! " e exiba: o texto sem espaços nas bordas, em maiúsculas, o número de caracteres e o texto com "mundo" substituído por "PHP".
O que o operador .= faz em PHP? Escreva um exemplo prático mostrando a construção de uma frase palavra por palavra usando esse operador.
Int e Float — números em PHP
Trabalhe com números inteiros e decimais em PHP, entenda operadores aritméticos, funções matemáticas e as armadilhas comuns com ponto flutuante.
Inteiros (int)
O tipo int (integer) representa números inteiros — positivos, negativos ou zero. Em PHP 64-bit, o valor máximo de um int é 9.223.372.036.854.775.807 (acessível via PHP_INT_MAX).
2
3$positivo = 100;
4$negativo = -50;
5$zero = 0;
6
7// Operadores aritméticos
8echo 10 + 3; // 13 (adição)
9echo 10 - 3; // 7 (subtração)
10echo 10 * 3; // 30 (multiplicação)
11echo 10 / 3; // 3.33... (divisão)
12echo 10 % 3; // 1 (módulo/resto)
13echo 10 ** 3; // 1000 (potência)
14?>
Decimais (float)
O tipo float (também chamado de double) armazena números com casas decimais. O separador decimal em PHP é o ponto ., não a vírgula:
2
3$preco = 29.90;
4$desconto = 0.15; // 15%
5
6$valor_final = $preco - ($preco * $desconto);
7echo $valor_final; // 25.415
8
9// Formatando para 2 casas decimais
10echo number_format($valor_final, 2, ',', '.');
11// Saída: 25,42 (padrão brasileiro)
12?>
Nunca compare floats com ==. Ex: 0.1 + 0.2 == 0.3 pode retornar false por imprecisão de ponto flutuante. Use abs($a - $b) < 0.0001 para comparações seguras.
Funções matemáticas
PHP oferece funções matemáticas prontas para uso, sem precisar importar bibliotecas:
2
3echo abs(-42); // 42 (valor absoluto)
4echo round(3.7); // 4 (arredonda)
5echo ceil(3.1); // 4 (arredonda para cima)
6echo floor(3.9); // 3 (arredonda para baixo)
7echo sqrt(16); // 4 (raiz quadrada)
8echo pow(2, 8); // 256 (potência)
9echo max(3, 8, 1); // 8 (maior valor)
10echo min(3, 8, 1); // 1 (menor valor)
11echo rand(1, 100); // número aleatório entre 1 e 100
12?>
// ATIVIDADE INTERATIVA
Qual é o resultado?
Em PHP, qual é o resultado de 10 % 3?
// AMBIENTE DE CÓDIGO
Exercícios Propostos
Pratique operações numéricas no ambiente acima
Qual é a diferença entre os tipos int e float em PHP? Em que situação você usaria cada um? Dê dois exemplos práticos de cada.
No ambiente de código, crie uma calculadora de IMC (Índice de Massa Corporal). A fórmula é: IMC = peso / (altura * altura). Use peso = 70kg e altura = 1.75m. Exiba o IMC com 2 casas decimais.
O operador % (módulo) retorna o resto da divisão. Como você pode usar esse operador para descobrir se um número é par ou ímpar? Escreva um exemplo.
Boolean e Null
Entenda os tipos lógicos do PHP: o boolean (verdadeiro/falso) que controla toda a lógica dos seus programas, e o null que representa ausência de valor.
Boolean — verdadeiro ou falso
O tipo bool (boolean) é o mais simples: só tem dois valores possíveis — true (verdadeiro) ou false (falso). É o tipo usado em condicionais, loops e toda lógica de programação.
2
3$logado = true;
4$tem_permissao = false;
5
6// Operadores de comparação retornam bool
7$maior = 10 > 5; // true
8$igual = 3 == 3; // true
9$diferente = 3 != 4; // true
10$identico = "1" === 1;// false (tipo diferente!)
11
12// var_dump mostra o tipo e valor
13var_dump($logado); // bool(true)
14var_dump($identico); // bool(false)
15?>
== compara apenas o valor (com conversão de tipo). === compara valor e tipo. Prefira sempre === para evitar comportamentos inesperados: "0" == false é true, mas "0" === false é false.
Valores "falsy" em PHP
Em PHP, alguns valores são tratados como false em contexto booleano, mesmo sem serem literalmente false. São os "falsy values":
false— o próprio false0e0.0— zero inteiro e float""e"0"— string vazia e string "0"[]— array vazionull— ausência de valor
Null — ausência de valor
O tipo null representa a ausência de valor. Uma variável é null quando não foi atribuído nenhum valor a ela, quando recebeu null explicitamente, ou quando foi destruída com unset().
2
3$resultado = null;
4
5// Verificando se é null
6var_dump(is_null($resultado)); // bool(true)
7
8// isset() — verifica se variável existe e não é null
9var_dump(isset($resultado)); // bool(false)
10
11// Operador de coalescência nula (PHP 7+)
12$nome = $resultado ?? "padrão";
13echo $nome; // "padrão"
14?>
O operador ?? retorna o valor do lado esquerdo se ele não for null; caso contrário, retorna o valor da direita. Muito útil para valores padrão: $nome = $_GET['nome'] ?? 'Visitante'.
// ATIVIDADE INTERATIVA
== ou ===? Qual usar?
Em PHP, qual é o resultado de 0 == "php"?
// AMBIENTE DE CÓDIGO
Exercícios Propostos
Fixando Boolean e Null
Explique a diferença entre == e === em PHP. Por que é importante usar o operador de identidade (===) em vez do de igualdade (==) na maioria dos casos?
O que é o operador ?? (null coalescing) e quando usá-lo? Escreva um exemplo prático simulando a leitura de um parâmetro de URL que pode ou não existir.
Liste os 5 valores "falsy" do PHP (que são tratados como false em contexto booleano) e explique por que é importante conhecê-los ao escrever condicionais.
Arrays — coleções de dados
Domine os arrays em PHP: armazene múltiplos valores em uma única variável, trabalhe com arrays indexados, associativos e multidimensionais.
Array Indexado
Um array indexado armazena uma lista de valores acessados por um índice numérico que começa em 0 (não em 1!). É como uma lista numerada.
2
3// Criando um array indexado
4$linguagens = ["PHP", "Python", "JavaScript"];
5
6// Acessando por índice (começa em 0)
7echo $linguagens[0]; // PHP
8echo $linguagens[1]; // Python
9echo $linguagens[2]; // JavaScript
10
11// Adicionando um novo elemento
12$linguagens[] = "Ruby"; // índice 3
13
14// Contando elementos
15echo count($linguagens); // 4
16?>
Array Associativo
Um array associativo usa chaves de string (em vez de números) para identificar cada valor. É como um dicionário: cada palavra (chave) tem uma definição (valor).
2
3$aluno = [
4 "nome" => "Ana Silva",
5 "idade" => 22,
6 "curso" => "Engenharia de Software",
7 "ativo" => true,
8];
9
10// Acessando por chave
11echo $aluno["nome"]; // Ana Silva
12echo $aluno["idade"]; // 22
13
14// Adicionando nova chave
15$aluno["nota"] = 9.5;
16
17// Percorrendo com foreach
18foreach ($aluno as $chave => $valor) {
19 echo "$chave: $valor\n";
20}
21?>
Funções de array essenciais
2
3$nums = [3, 1, 4, 1, 5, 9, 2, 6];
4
5sort($nums); // Ordena (modifica o original)
6echo implode(", ", $nums); // 1, 1, 2, 3, 4, 5, 6, 9
7
8$frutas = ["maçã", "banana", "uva"];
9echo in_array("banana", $frutas); // true (existe no array)
10array_push($frutas, "manga"); // Adiciona ao final
11array_pop($frutas); // Remove do final
12$unicos = array_unique($nums); // Remove duplicatas
13?>
// ATIVIDADE INTERATIVA
Associe a função ao que ela faz!
Arraste cada função para a descrição correta.
// AMBIENTE DE CÓDIGO
Exercícios Propostos
Pratique Arrays no ambiente acima
Qual é a diferença entre um array indexado e um array associativo em PHP? Quando você escolheria usar cada um deles? Dê um exemplo de caso de uso real para cada tipo.
No ambiente de código acima, crie um array associativo representando um produto de e-commerce com pelo menos 5 campos (nome, preço, estoque, categoria, disponível). Percorra com foreach e exiba cada campo formatado.
Crie um script PHP que tenha um array com os nomes de 5 colegas. Use sort() para ordenar alfabeticamente, implode() para juntar com vírgula e verifique com in_array() se um nome específico está na lista.
Tipagem Dinâmica e Conversão
Entenda como o PHP gerencia tipos automaticamente, como converter entre tipos manualmente e como usar a verificação de tipos do PHP 8 para escrever código mais seguro.
PHP é fracamente tipado
PHP é uma linguagem de tipagem dinâmica e fraca: você não declara o tipo de uma variável, e o PHP converte tipos automaticamente quando necessário. Isso é chamado de type juggling (malabarismo de tipos).
2
3// PHP converte automaticamente quando necessário
4$numero = "5"; // string "5"
5$resultado = $numero + 3; // PHP converte "5" para int
6echo $resultado; // 8 (int)
7
8// Concatenação vs adição
9echo "10" + "20"; // 30 (adição numérica)
10echo "10" . "20"; // 1020 (concatenação)
11?>
Conversão explícita (casting)
Você pode forçar a conversão de tipo usando o operador de cast — coloque o tipo entre parênteses antes da variável:
2
3$valor = "42.7abc";
4
5echo (int) $valor; // 42 (para inteiro)
6echo (float) $valor; // 42.7 (para float)
7echo (string)3.14; // "3.14" (para string)
8echo (bool) 0; // false (para bool)
9echo (array) "PHP"; // ["PHP"] (para array)
10
11// Funções de conversão
12echo intval("42abc"); // 42
13echo strval(100); // "100"
14echo floatval("3.5"); // 3.5
15?>
Verificação de tipos
PHP tem funções para verificar o tipo de uma variável antes de usá-la:
2
3$x = 42;
4
5is_int($x); // true
6is_float($x); // false
7is_string($x); // false
8is_bool($x); // false
9is_array($x); // false
10is_null($x); // false
11is_numeric($x); // true (int ou string numérica)
12gettype($x); // "integer"
13?>
No PHP 8, você pode ativar tipagem estrita no topo do arquivo com declare(strict_types=1);. Com isso, funções só aceitam exatamente o tipo declarado na assinatura, evitando conversões silenciosas.
// ATIVIDADE INTERATIVA
Desafio Final — Módulo 2
Qual é o resultado de (int) "10 maçãs" em PHP?
// AMBIENTE DE CÓDIGO
Exercícios Finais — Módulo 2
Consolide todo o aprendizado do Módulo 2
O que é type juggling em PHP? Dê um exemplo de situação onde o type juggling pode causar um bug inesperado e como evitá-lo.
No ambiente de código, crie um script que declare uma variável de cada tipo primitivo (string, int, float, bool, null, array) e use gettype() para exibir o tipo de cada uma em uma tabela formatada.
Crie um script PHP completo que simule um formulário de cadastro: defina variáveis para nome (string), idade (int), altura (float), ativo (bool) e interesses (array). Valide cada tipo com as funções is_*() e exiba um relatório de cadastro formatado.