AULA 01 / 06 ⏱ ~15 min

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.

PHP · variaveis.php
1<?php
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?>
💡
PHP é case-sensitive para variáveis

$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_variavel ou $minhaVariavel
  • É case-sensitive — $x e $X são diferentes
Convenção PHP: snake_case

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:

PHP · dinamico.php
1<?php
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
🧠
Quiz rápido · +10 XP

Teste seu conhecimento!

Qual das opções abaixo é uma declaração de variável VÁLIDA em PHP?

A
1nome = "Carlos";
B
nome = "Carlos";
C
$nome = "Carlos";
D
var nome = "Carlos";
🎯
Correto! +10 XP ganhos! Em PHP, toda variável começa com $.

// AMBIENTE DE CÓDIGO
variaveis.php
PHP Sandbox
Editor PHP
Saída
Clique em "Executar" para ver a saída...
📝

Exercícios Propostos

Questões de fixação do conteúdo desta aula

EXERCÍCIO 01

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?

// GABARITO

O $ serve como um identificador visual imediato. Ao ler um código PHP, qualquer palavra precedida de $ é, sem dúvida, uma variável — isso facilita a leitura e distingue variáveis de funções, palavras-chave e constantes, que não usam $.

A vantagem é a clareza: em um template PHP misturado com HTML, você sabe instantaneamente o que é código dinâmico (variável) e o que é texto estático.

EXERCÍCIO 02

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

// GABARITO

$_nome — ✅ Válida. Pode começar com underscore.

$2valor — ❌ Inválida. Não pode começar com número após o $.

$meu nome — ❌ Inválida. Espaços não são permitidos em nomes de variáveis.

$totalPedido — ✅ Válida. camelCase é aceito em PHP.

$class — ✅ Válida. Apesar de class ser palavra reservada, como nome de variável precedida de $ é permitido.

EXERCÍCIO 03

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.

// GABARITO
<?php
$nome       = "Carlos Silva";
$idade      = 23;
$cidade     = "Campinas";
$profissao  = "Estudante de TI";
$linguagem  = "PHP";

echo "Nome: "       . $nome      . "\n";
echo "Idade: "      . $idade     . " anos\n";
echo "Cidade: "     . $cidade    . "\n";
echo "Profissão: "  . $profissao . "\n";
echo "Linguagem: "  . $linguagem . "\n";
?>
AULA 02 / 06 ⏱ ~20 min

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:

PHP · strings.php
1<?php
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 +):

PHP · concatenacao.php
1<?php
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:

PHP · funcoes_string.php
1<?php
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?>
⚠️
Cuidado com caracteres especiais

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
✏️
Complete o código · +15 XP

Qual função devo usar?

Preencha com a função PHP correta para cada situação.

Contar caracteres de uma string: ($texto)

Converter para maiúsculas: ($texto)

Substituir texto: ("a", "b", $texto)

Remover espaços das bordas: ($texto)
Perfeito! +15 XP! Você já conhece as funções essenciais de string!

// AMBIENTE DE CÓDIGO
strings.php
PHP Sandbox
Editor PHP
Saída
Clique em "Executar" para ver a saída...
📝

Exercícios Propostos

Questões de fixação do conteúdo desta aula

EXERCÍCIO 01

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.

// GABARITO

Aspas duplas (" "): o PHP interpola variáveis e processa escapes como \n (nova linha) e \t (tabulação).

Aspas simples (' '): tudo é tratado como texto literal. Variáveis não são substituídas.

<?php
$nome = "Ana";
echo "Olá, $nome!";   // Saída: Olá, Ana!
echo 'Olá, $nome!';   // Saída: Olá, $nome!
?>
EXERCÍCIO 02

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

// GABARITO
<?php
$texto = "  olá, mundo!  ";

$sem_espacos = trim($texto);
echo $sem_espacos . "\n";                     // olá, mundo!
echo strtoupper($sem_espacos) . "\n";         // OLÁ, MUNDO!
echo strlen($sem_espacos) . " caracteres\n";  // 12 caracteres
echo str_replace("mundo", "PHP", $sem_espacos) . "\n"; // olá, PHP!
?>
EXERCÍCIO 03

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.

// GABARITO

O operador .= é a concatenação com atribuição: ele pega o valor atual da variável, concatena com o novo valor e salva o resultado na mesma variável. É um atalho para $var = $var . "novo".

<?php
$frase  = "PHP ";
$frase .= "é ";
$frase .= "muito ";
$frase .= "poderoso!";
echo $frase; // PHP é muito poderoso!
?>
AULA 03 / 06 ⏱ ~20 min

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

PHP · inteiros.php
1<?php
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:

PHP · floats.php
1<?php
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?>
⚠️
Atenção com comparação de floats

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:

PHP · matematica.php
1<?php
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
🧮
Cálculo mental · +15 XP

Qual é o resultado?

Em PHP, qual é o resultado de 10 % 3?

A
3
B
1
C
3.33
D
0
🎯
Correto! +15 XP! O operador % retorna o resto da divisão: 10 ÷ 3 = 3 com resto 1.

// AMBIENTE DE CÓDIGO
numeros.php
PHP Sandbox
Editor PHP
Saída
Clique em "Executar" para ver a saída...
📝

Exercícios Propostos

Pratique operações numéricas no ambiente acima

EXERCÍCIO 01

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.

// GABARITO

int: números sem casas decimais. Use para contagens, IDs, quantidades. Ex: $quantidade = 5, $id_usuario = 42.

float: números com casas decimais. Use para valores monetários, medidas, percentuais. Ex: $preco = 29.90, $altura = 1.75.

EXERCÍCIO 02

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.

// GABARITO
<?php
$peso   = 70;
$altura = 1.75;

$imc = $peso / ($altura * $altura);

echo "Peso: "   . $peso   . " kg\n";
echo "Altura: " . $altura . " m\n";
echo "IMC: "    . number_format($imc, 2, ',', '.') . "\n";
// IMC: 22,86
?>
EXERCÍCIO 03

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.

// GABARITO

Se $n % 2 === 0, o número é par. Se $n % 2 === 1, é ímpar. O módulo por 2 sempre retorna 0 (par) ou 1 (ímpar).

<?php
$numero = 7;
if ($numero % 2 === 0) {
    echo "$numero é par";
} else {
    echo "$numero é ímpar";
}
// 7 é ímpar
?>
AULA 04 / 06 ⏱ ~15 min

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.

PHP · boolean.php
1<?php
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?>
💡
== vs === em PHP

== 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 false
  • 0 e 0.0 — zero inteiro e float
  • "" e "0" — string vazia e string "0"
  • [] — array vazio
  • null — 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().

PHP · null.php
1<?php
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?>
💡
Operador ?? (Null Coalescing)

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
🎯
Desafio lógico · +15 XP

== ou ===? Qual usar?

Em PHP, qual é o resultado de 0 == "php"?

A
true — PHP converte "php" para 0 ao comparar com ==
B
false — são tipos diferentes
C
Gera um erro de tipo
D
null
🏆
Correto! +15 XP! Por isso sempre use === em comparações críticas!

// AMBIENTE DE CÓDIGO
boolean-null.php
PHP Sandbox
Editor PHP
Saída
Clique em "Executar" para ver a saída...
📝

Exercícios Propostos

Fixando Boolean e Null

EXERCÍCIO 01

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?

// GABARITO

== compara apenas o valor, realizando type juggling (conversão automática de tipo). Isso pode causar resultados inesperados: 0 == false é true, "" == false é true.

=== compara valor e tipo, sem conversão. É mais seguro e previsível. Use sempre === a menos que precise de conversão de tipo intencional.

EXERCÍCIO 02

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.

// GABARITO

O ?? retorna o operando da esquerda se não for null; caso contrário, retorna o da direita. Evita o padrão verbose de isset($x) ? $x : 'default'.

<?php
// Simulando $_GET['pagina'] inexistente
$_GET = []; // array vazio para simular

$pagina = $_GET['pagina'] ?? 1; // Usa 1 como padrão
$ordem  = $_GET['ordem']  ?? 'asc';

echo "Página: $pagina\n"; // Página: 1
echo "Ordem: $ordem\n";   // Ordem: asc
?>
EXERCÍCIO 03

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.

// GABARITO

Os valores falsy em PHP são: false, 0 (int zero), 0.0 (float zero), "" (string vazia), "0" (string zero), [] (array vazio) e null.

É essencial conhecê-los para evitar bugs em condicionais. Exemplo: if ($quantidade) falha quando $quantidade é 0, mesmo sendo um valor válido. O correto seria if ($quantidade !== null).

AULA 05 / 06 ⏱ ~25 min

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.

PHP · array_indexado.php
1<?php
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).

PHP · array_associativo.php
1<?php
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

PHP · funcoes_array.php
1<?php
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
🎯
Arrastar e Soltar · +20 XP

Associe a função ao que ela faz!

Arraste cada função para a descrição correta.

count()
implode()
in_array()
sort()
Conta elementos →
Ordena o array →
Une em string →
Busca um valor →
🏆
Perfeito! +20 XP! Você domina as funções de array!

// AMBIENTE DE CÓDIGO
arrays.php
PHP Sandbox
Editor PHP
Saída
Clique em "Executar" para ver a saída...
📝

Exercícios Propostos

Pratique Arrays no ambiente acima

EXERCÍCIO 01

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.

// GABARITO

Array indexado: usa índices numéricos (0, 1, 2...). Ideal para listas simples onde a ordem importa. Ex: lista de resultados de busca, fila de tarefas, itens de um carrinho.

Array associativo: usa chaves de string. Ideal para representar um objeto/entidade com propriedades nomeadas. Ex: dados de um usuário (nome, email, idade), configurações do sistema, linha de banco de dados.

EXERCÍCIO 02

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.

// GABARITO
<?php
$produto = [
    "nome"        => "Teclado Mecânico",
    "preco"       => 349.90,
    "estoque"     => 15,
    "categoria"   => "Periféricos",
    "disponivel"  => true,
];

echo "=== Dados do Produto ===\n";
foreach ($produto as $campo => $valor) {
    if (is_bool($valor)) {
        $valor = $valor ? "Sim" : "Não";
    }
    echo ucfirst($campo) . ": " . $valor . "\n";
}
?>
EXERCÍCIO 03

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.

// GABARITO
<?php
$colegas = ["Marcos", "Ana", "Beatriz", "Carlos", "Daniel"];

sort($colegas);
echo "Ordenados: " . implode(", ", $colegas) . "\n";
// Ana, Beatriz, Carlos, Daniel, Marcos

$busca = "Ana";
if (in_array($busca, $colegas)) {
    echo "$busca está na lista!\n";
} else {
    echo "$busca não está na lista.\n";
}
?>
AULA 06 / 06 ⏱ ~20 min

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

PHP · type_juggling.php
1<?php
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:

PHP · casting.php
1<?php
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:

PHP · verificacao_tipos.php
1<?php
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?>
💡
PHP 8: declare(strict_types=1)

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
🏆
Quiz Final do Módulo · +25 XP

Desafio Final — Módulo 2

Qual é o resultado de (int) "10 maçãs" em PHP?

A
Erro de tipo
B
0
C
10
D
"10 maçãs"
🎓
+25 XP! Módulo 2 concluído! O cast (int) extrai a parte numérica inicial da string!

// AMBIENTE DE CÓDIGO
tipagem.php
PHP Sandbox
Editor PHP
Saída
Clique em "Executar" para ver a saída...
🏁

Exercícios Finais — Módulo 2

Consolide todo o aprendizado do Módulo 2

EXERCÍCIO 01

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.

// GABARITO

Type juggling é a conversão automática de tipos que o PHP faz quando você usa valores de tipos diferentes juntos numa operação. O PHP "adivinham" o tipo que faz mais sentido no contexto.

Bug clássico: ao comparar o retorno de strpos() (que pode retornar 0 quando encontra na posição 0) com ==: strpos("PHP", "P") == false retorna true pois 0 == false.

Solução: usar sempre ===: strpos("PHP", "P") === false retorna corretamente false.

EXERCÍCIO 02

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.

// GABARITO
<?php
$vars = [
    'string' => "PHP Master",
    'int'    => 42,
    'float'  => 3.14,
    'bool'   => true,
    'null'   => null,
    'array'  => [1, 2, 3],
];

echo "Variável          | Tipo\n";
echo str_repeat("-", 30) . "\n";
foreach ($vars as $nome => $val) {
    $tipo = gettype($val);
    echo str_pad($nome, 18) . "| " . $tipo . "\n";
}
?>
EXERCÍCIO 03 — DESAFIO

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.

// GABARITO
<?php
$nome       = "Beatriz Costa";
$idade      = 21;
$altura     = 1.62;
$ativo      = true;
$interesses = ["PHP", "MySQL", "APIs REST"];

// Validação de tipos
$valido = is_string($nome)
       && is_int($idade)
       && is_float($altura)
       && is_bool($ativo)
       && is_array($interesses);

echo "╔═══════════════════════════════╗\n";
echo "║        CADASTRO DE ALUNO      ║\n";
echo "╠═══════════════════════════════╣\n";
echo "║ Nome:       " . $nome        . "\n";
echo "║ Idade:      " . $idade       . " anos\n";
echo "║ Altura:     " . $altura      . " m\n";
echo "║ Ativo:      " . ($ativo ? "Sim" : "Não") . "\n";
echo "║ Interesses: " . implode(", ", $interesses) . "\n";
echo "╠═══════════════════════════════╣\n";
echo "║ Cadastro válido: " . ($valido ? "✓ Sim" : "✗ Não") . "\n";
echo "╚═══════════════════════════════╝\n";
?>
Ver todos os módulos →
XP Total
0 / 100 XP