AULA 01 / 05 ⏱ ~15 min

O que são Funções?

Entenda o conceito de funções, por que elas são a base de um código organizado e como declarar suas primeiras funções em PHP.

Por que usar funções?

Imagine que você precisa calcular o preço com desconto em vários lugares do seu sistema. Sem funções, você copiaria o mesmo cálculo repetidamente. Com funções, você escreve uma vez e reutiliza infinitas vezes.

Funções são blocos de código com um nome, que executam uma tarefa específica quando chamados. Elas tornam o código:

  • Reutilizável — escreva uma vez, use em qualquer lugar
  • Organizado — cada função tem uma responsabilidade clara
  • Fácil de manter — altere em um lugar, reflete em todo o sistema
  • Testável — você pode testar cada função isoladamente
💡
Princípio DRY

Don't Repeat Yourself (Não Se Repita) é um dos princípios mais importantes da programação. Funções são a principal ferramenta para aplicar esse princípio.

Sintaxe de uma função

Para declarar uma função em PHP, usamos a palavra-chave function, seguida do nome e dos parênteses:

PHP · funcoes.php
1<?php
2
3// Declaração da função
4function saudacao() {
5  echo "Olá, bem-vindo ao PHPMaster!\n";
6}
7
8// Chamada da função (pode ser chamada quantas vezes quiser)
9saudacao();
10saudacao();
11saudacao();
12
13// Saída (3x):
14// Olá, bem-vindo ao PHPMaster!
15?>
⚠️
Nomes de funções em PHP

Nomes de funções são case-insensitive em PHP (minhaFuncao() e MINHAFUNCAO() são a mesma coisa), mas por boa prática use sempre camelCase ou snake_case de forma consistente.


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

// ATIVIDADE INTERATIVA
🧠
Quiz rápido · +10 XP

Teste seu conhecimento!

Qual palavra-chave é usada para declarar uma função em PHP?

A
def
B
func
C
function
D
void
🎯
Correto! +10 XP ganhos! Em PHP usamos a palavra-chave function.
📝

Exercícios Propostos

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

EXERCÍCIO 01

Explique com suas palavras o que é uma função em PHP e cite três vantagens de usá-las em vez de repetir código.

// GABARITO

Uma função é um bloco de código nomeado que pode ser executado (chamado) quantas vezes for necessário, sem repetir o código. Vantagens: reutilização (escreve uma vez, usa em vários lugares), organização (cada função tem uma responsabilidade) e manutenção (alterar em um ponto reflete em todo o sistema).

EXERCÍCIO 02

Crie uma função chamada linha_separadora() que imprima 40 traços seguidos de uma quebra de linha. Depois, crie uma função titulo() que use linha_separadora() para formatar um cabeçalho.

// GABARITO
<?php
function linha_separadora() {
    echo str_repeat("-", 40) . "\n";
}

function titulo() {
    linha_separadora();
    echo "  BEM-VINDO AO PHPMASTER!\n";
    linha_separadora();
}

titulo();
?>
EXERCÍCIO 03

O que acontece se você tentar chamar uma função antes de declará-la em PHP? E o que acontece se tentar declarar duas funções com o mesmo nome? Explique o comportamento.

// GABARITO

Chamar antes de declarar: Em PHP, diferente de JavaScript, funções declaradas com function normalmente podem ser chamadas antes da declaração no mesmo arquivo — o PHP faz uma passagem prévia pelo código. Porém, isso não vale para funções dentro de condicionais ou outras funções.

Duas funções com mesmo nome: Causa um erro fatal Fatal error: Cannot redeclare function_name(). PHP não permite sobrecarga de funções com o mesmo nome no mesmo escopo.

AULA 02 / 05 ⏱ ~20 min

Parâmetros e Argumentos

Aprenda a tornar suas funções flexíveis e reutilizáveis passando dados para elas através de parâmetros e argumentos.

Parâmetros vs Argumentos

Esses dois termos são frequentemente confundidos, mas têm significados distintos:

  • Parâmetros são as variáveis listadas na declaração da função (o "molde").
  • Argumentos são os valores reais passados quando a função é chamada.
PHP · parametros.php
1<?php
2
3// $nome e $idade são PARÂMETROS
4function apresentar($nome, $idade) {
5  echo "Olá! Sou {$nome} e tenho {$idade} anos.\n";
6}
7
8// "Ana" e 25 são ARGUMENTOS
9apresentar("Ana", 25);
10apresentar("Carlos", 32);
11
12// Saída:
13// Olá! Sou Ana e tenho 25 anos.
14// Olá! Sou Carlos e tenho 32 anos.
15?>

Valores padrão (default)

Você pode definir um valor padrão para um parâmetro. Se o argumento não for passado na chamada, o valor padrão é usado automaticamente:

PHP · default.php
1<?php
2
3function saudacao($nome, $lingua = "pt") {
4  if ($lingua === "pt") {
5    echo "Olá, {$nome}!\n";
6  } else {
7    echo "Hello, {$nome}!\n";
8  }
9}
10
11saudacao("Maria"); // usa padrão "pt"
12saudacao("John", "en"); // usa "en"
13?>
⚠️
Ordem dos parâmetros

Parâmetros com valor padrão devem sempre vir depois dos parâmetros obrigatórios. function f($a = 1, $b) gera erro — o correto é function f($b, $a = 1).


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

// ATIVIDADE INTERATIVA
✏️
Complete o código · +15 XP

Preencha as lacunas!

Complete a declaração da função com parâmetros corretamente.

calcular(, = 0) {

  echo + $b;
}
Excelente! +15 XP! Você sabe declarar funções com parâmetros!
📝

Exercícios Propostos

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

EXERCÍCIO 01

Crie uma função imc($peso, $altura) que calcule o Índice de Massa Corporal (IMC = peso / altura²) e exiba o resultado formatado com 2 casas decimais. Chame-a com pelo menos 3 conjuntos de valores diferentes.

// GABARITO
<?php
function imc($peso, $altura) {
    $resultado = $peso / ($altura * $altura);
    echo "Peso: {$peso}kg | Altura: {$altura}m | IMC: " . number_format($resultado, 2, '.', '') . "\n";
}

imc(70, 1.75);
imc(90, 1.80);
imc(55, 1.60);
?>
EXERCÍCIO 02

Crie uma função formatar_nome($nome, $maiusculo = false) que receba um nome e um parâmetro opcional. Se $maiusculo for true, exibe o nome em maiúsculas; caso contrário, exibe com a primeira letra maiúscula. Use as funções nativas strtoupper() e ucwords().

// GABARITO
<?php
function formatar_nome($nome, $maiusculo = false) {
    if ($maiusculo) {
        echo strtoupper($nome) . "\n";
    } else {
        echo ucwords(strtolower($nome)) . "\n";
    }
}

formatar_nome("joao da silva");          // João Da Silva
formatar_nome("maria souza", true);      // MARIA SOUZA
formatar_nome("PEDRO ALVES");            // Pedro Alves
?>
AULA 03 / 05 ⏱ ~20 min

Retorno de Valores

Entenda como as funções podem devolver resultados com o return e como usar esses valores no seu programa.

A instrução return

Até agora nossas funções apenas exibiam dados com echo. Mas o mais poderoso é quando uma função calcula e devolve um valor, que pode ser usado em outras operações.

A instrução return encerra a execução da função e devolve o valor ao ponto de chamada:

PHP · return.php
1<?php
2
3// Função que RETORNA um valor
4function somar($a, $b) {
5  return $a + $b;
6}
7
8// O retorno pode ser armazenado em variável
9$resultado = somar(10, 25);
10echo "10 + 25 = {$resultado}\n";
11
12// Ou usado diretamente em expressões
13echo somar(3, 4) * 2; // 14
14
15// Passado para outra função
16echo somar(somar(1,2), 3); // 6
17?>
💡
echo vs return

Use echo quando quer exibir algo na tela diretamente. Use return quando quer que a função produza um valor que será usado em outro cálculo, comparação ou armazenado em variável.

Return múltiplo com array

Uma função só pode ter um return, mas você pode retornar múltiplos valores usando um array:

PHP · multi-return.php
1<?php
2
3function estatisticas($nums) {
4  return [
5    'min' => min($nums),
6    'max' => max($nums),
7    'soma' => array_sum($nums),
8  ];
9}
10
11$dados = estatisticas([4, 8, 15, 16, 23]);
12echo "Min: {$dados['min']}\n";
13echo "Max: {$dados['max']}\n";
14echo "Soma: {$dados['soma']}\n";
15?>

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

// ATIVIDADE INTERATIVA
🧠
Quiz rápido · +10 XP

Teste seu conhecimento!

O que acontece com o código após a instrução return dentro de uma função?

A
Continua executando normalmente
B
A função é encerrada imediatamente
C
Gera um erro de execução
D
O programa inteiro para
🎯
Correto! +10 XP! O return encerra a função e devolve o valor.
📝

Exercícios Propostos

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

EXERCÍCIO 01

Crie uma função calcular_troco($valor_produto, $valor_pago) que retorne o troco. Se o valor pago for menor que o produto, retorne -1 como sinal de erro. Exiba mensagens diferentes para cada caso.

// GABARITO
<?php
function calcular_troco($valor_produto, $valor_pago) {
    if ($valor_pago < $valor_produto) {
        return -1;
    }
    return $valor_pago - $valor_produto;
}

$troco = calcular_troco(15.50, 20.00);
if ($troco === -1) {
    echo "Valor insuficiente!\n";
} else {
    echo "Troco: R$ " . number_format($troco, 2, ',', '.') . "\n";
}

$troco2 = calcular_troco(50.00, 30.00);
if ($troco2 === -1) {
    echo "Valor insuficiente!\n";
}
?>
EXERCÍCIO 02 — DESAFIO

Crie uma função classificar_nota($nota) que receba uma nota de 0 a 10 e retorne a classificação: "Reprovado" (0–4), "Recuperação" (5–6), "Aprovado" (7–8) ou "Excelente" (9–10). Use ela para classificar um array de notas.

// GABARITO
<?php
function classificar_nota($nota) {
    if ($nota <= 4)      return "Reprovado";
    elseif ($nota <= 6)  return "Recuperação";
    elseif ($nota <= 8)  return "Aprovado";
    else                 return "Excelente";
}

$notas = [3, 5.5, 7, 8.5, 10, 2, 6];
foreach ($notas as $n) {
    echo "Nota {$n}: " . classificar_nota($n) . "\n";
}
?>
AULA 04 / 05 ⏱ ~25 min

Escopo de Variáveis

Descubra onde cada variável "existe" no PHP — a diferença entre escopo local, global e o uso do global e static.

Escopo local vs global

Em PHP, variáveis declaradas fora de uma função são globais. Variáveis declaradas dentro de uma função são locais — e elas não se enxergam mutuamente por padrão:

PHP · escopo.php
1<?php
2
3$mensagem = "Olá do escopo global!";
4
5function testar() {
6  // $mensagem NÃO existe aqui!
7  echo $mensagem; // Notice: Undefined variable
8}
9
10testar();
11echo $mensagem; // Funciona! Estamos no escopo global
12?>
⚠️
PHP é diferente de outras linguagens

Em JavaScript, variáveis globais são acessíveis dentro de funções. Em PHP, não são. Cada função tem seu próprio escopo isolado — isso é uma decisão de design intencional do PHP.

A palavra-chave global

Para acessar uma variável global dentro de uma função, use a palavra-chave global:

PHP · global.php
1<?php
2
3$contador = 0;
4
5function incrementar() {
6  global $contador; // agora $contador existe aqui
7  $contador++;
8}
9
10incrementar();
11incrementar();
12incrementar();
13
14echo $contador; // 3
15?>
Boa prática

Evite usar global em excesso — ele cria acoplamento e dificulta testes. Prefira passar valores por parâmetros e retornar resultados. Use global apenas quando realmente necessário.

Variáveis estáticas (static)

Uma variável static mantém seu valor entre chamadas da função — ao contrário das variáveis locais, que são destruídas ao fim de cada execução:

PHP · static.php
1<?php
2
3function contar_chamadas() {
4  static $vezes = 0; // inicializada só na 1ª chamada
5  $vezes++;
6  echo "Esta função foi chamada {$vezes} vez(es)\n";
7}
8
9contar_chamadas(); // 1
10contar_chamadas(); // 2
11contar_chamadas(); // 3
12?>

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

// ATIVIDADE INTERATIVA
🎯
Arrastar e soltar · +20 XP

Associe o conceito ao comportamento!

Arraste cada palavra-chave para o comportamento correto.

global
static
local
return
Mantém valor entre chamadas:
Acessa variável de fora da função:
Existe apenas dentro da função:
Devolve um valor ao chamador:
🏆
Perfeito! +20 XP! Você dominou o escopo em PHP!
📝

Exercícios Propostos

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

EXERCÍCIO 01

Explique a diferença entre uma variável local, uma variável global (acessada com global) e uma variável static. Dê um exemplo de uso prático para cada uma.

// GABARITO

Local: existe só dentro da função, destruída ao fim de cada chamada. Uso: variáveis de cálculo intermediário que não precisam persistir.

Global (com keyword global): compartilhada com o escopo externo. Uso: configurações globais do sistema, como conexão com banco de dados.

Static: local, mas mantém o valor entre chamadas. Uso: contadores, geração de IDs sequenciais, cache simples dentro de uma função.

EXERCÍCIO 02 — DESAFIO

Crie uma função gerar_codigo($prefixo) que use uma variável static para gerar códigos únicos sequenciais no formato PREFIXO-001, PREFIXO-002, etc. Chame-a 5 vezes com o prefixo "PROD".

// GABARITO
<?php
function gerar_codigo($prefixo) {
    static $num = 1;
    $codigo = $prefixo . '-' . str_pad($num, 3, '0', STR_PAD_LEFT);
    $num++;
    return $codigo;
}

for ($i = 0; $i < 5; $i++) {
    echo gerar_codigo('PROD') . "\n";
}
// PROD-001, PROD-002, PROD-003, PROD-004, PROD-005
?>
AULA 05 / 05 ⏱ ~25 min

Funções Nativas do PHP

O PHP vem com centenas de funções prontas para uso. Conheça as mais importantes para strings, números, arrays e datas.

Funções de String

O PHP possui um arsenal enorme para manipular textos. As mais usadas no dia a dia:

PHP · strings.php
1<?php
2$texto = " Olá, PHP Master! ";
3
4echo strlen($texto); // 20 — tamanho
5echo trim($texto); // Remove espaços
6echo strtoupper($texto); // MAIÚSCULAS
7echo strtolower($texto); // minúsculas
8echo str_replace("PHP", "World", $texto); // Substituição
9echo substr($texto, 7, 3); // "PHP"
10echo strpos($texto, "PHP"); // posição de "PHP"
11echo str_repeat("* ", 5); // "* * * * * "
12?>

Funções Matemáticas e de Array

Para cálculos e manipulação de listas, o PHP oferece funções nativas prontas:

PHP · math-array.php
1<?php
2// Matemáticas
3echo abs(-42); // 42 — valor absoluto
4echo round(4.6); // 5 — arredondamento
5echo ceil(4.1); // 5 — arredonda para cima
6echo floor(4.9); // 4 — arredonda para baixo
7echo pow(2, 10); // 1024
8echo rand(1, 100); // número aleatório
9
10// Arrays
11$nums = [3, 1, 4, 1, 5, 9];
12echo count($nums); // 6
13echo array_sum($nums); // 23
14echo max($nums); // 9
15echo min($nums); // 1
16sort($nums); // ordena: [1,1,3,4,5,9]
17?>
📚
Documentação oficial

O PHP tem mais de 1.000 funções nativas! Consulte sempre a documentação em php.net/manual — ela está disponível em português e é a referência definitiva.


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

// ATIVIDADE INTERATIVA
🏆
Quiz final do módulo · +25 XP

Qual função nativa usar?

Você precisa remover os espaços do início e do fim de uma string em PHP. Qual função nativa usar?

A
strip()
B
trim()
C
clean()
D
remove_spaces()
🌟
Perfeito! +25 XP! trim() remove espaços, tabs e quebras de linha das extremidades.
📝

Exercícios Propostos

Desafios finais do Módulo 4

EXERCÍCIO 01

Crie uma função validar_email($email) que use a função nativa filter_var() para verificar se um e-mail é válido. Retorne true ou false e exiba uma mensagem adequada para cada caso.

// GABARITO
<?php
function validar_email($email) {
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}

$emails = ["user@email.com", "invalido@", "outro@dominio.com.br", "errado"];
foreach ($emails as $e) {
    if (validar_email($e)) {
        echo "✅ Válido:   {$e}\n";
    } else {
        echo "❌ Inválido: {$e}\n";
    }
}
?>
EXERCÍCIO 02 — DESAFIO FINAL

Crie um mini-sistema de processamento de nomes usando apenas funções nativas do PHP. A função processar_nome($nome_bruto) deve: remover espaços extras, capitalizar cada palavra, verificar se o nome tem pelo menos 2 palavras (nome e sobrenome), e retornar um array com ['valido' => bool, 'nome_formatado' => string].

// GABARITO
<?php
function processar_nome($nome_bruto) {
    $limpo = trim($nome_bruto);
    $formatado = ucwords(strtolower($limpo));
    $partes = explode(' ', $formatado);
    $partes = array_filter($partes); // remove strings vazias
    $valido = count($partes) >= 2;
    return [
        'valido' => $valido,
        'nome_formatado' => implode(' ', $partes)
    ];
}

$nomes = ["  joão silva  ", "maria", "PEDRO ALVES SANTOS", "ana"];
foreach ($nomes as $n) {
    $r = processar_nome($n);
    $status = $r['valido'] ? "✅" : "❌";
    echo "{$status} '{$r['nome_formatado']}'\n";
}
?>
Ver todos os módulos →
XP Total
0 / 90 XP