Funções no PHP: Como Uma Função Pode Invocar Outra
Em nossa jornada pelo Curso de PHP, já aprendemos a criar funções isoladas para realizar tarefas específicas. Mas você sabia que as funções podem trabalhar em equipe? Uma das técnicas mais poderosas e comuns na programação é uma função invocar (chamar) outra função dentro dela.
Isso permite que você quebre problemas complexos em pedacinhos minúsculos e fáceis de resolver, criando um código muito mais limpo e profissional.
1. Invocando Funções Nativas do PHP
Antes de criarmos nossas próprias interações complexas, vamos ver como invocar funções que já vêm embutidas no PHP. Vamos criar um script que recebe o raio de um círculo via formulário e calcula sua área.
A fórmula da área é: Área = PI * Raio². Para isso, nossa função area() vai invocar duas funções matemáticas nativas do PHP: pi() e pow() (potenciação).
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Área do Círculo - PHP Progressivo</title>
</head>
<body style="font-family: Arial; padding: 20px;">
<form action="" method="get">
Raio: <input type="number" step="any" name="raio" required />
<input type="submit" value="Calcular" />
</form>
<?php
if (isset($_GET['raio'])) {
$raioUsuario = floatval($_GET['raio']);
echo "<br><strong>A área é:</strong> " . number_format(area($raioUsuario), 2);
}
// Nossa função personalizada invocando duas nativas
function area($raio) {
// pi() retorna 3.14159...
// pow($raio, 2) eleva o raio ao quadrado
return pi() * pow($raio, 2);
}
?>
</body>
</html>
2. Função Customizada invocando Função Customizada
Agora vamos ao mundo real. Crie um script que receba os 3 coeficientes (a, b, c) de uma Equação do 2º Grau e classifique as raízes dela.
Para isso ficar organizado, usaremos duas funções feitas por nós:
delta(): Recebe os coeficientes e faz o cálculo puro do Delta (b² - 4ac).equacao(): Recebe os coeficientes, invoca a função delta(), recebe a resposta dela e usa o resultado para classificar a equação comif/else.
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Calculadora de Equações</title>
</head>
<body style="font-family: Arial; padding: 20px;">
<form action="" method="get">
A: <input type="number" name="a" required /><br><br>
B: <input type="number" name="b" required /><br><br>
C: <input type="number" name="c" required /><br><br>
<input type="submit" value="Analisar Equação" />
</form>
<?php
if (isset($_GET['a']) && isset($_GET['b']) && isset($_GET['c'])) {
$a = floatval($_GET['a']);
$b = floatval($_GET['b']);
$c = floatval($_GET['c']);
echo "<br><strong>Resultado:</strong> " . equacao($a, $b, $c);
}
// Função Principal
function equacao($a, $b, $c) {
// Verificação Básica
if ($a == 0) {
return "Não é uma equação do 2º grau (A não pode ser zero).";
}
// A função invoca a função delta() aqui e guarda o valor!
$valorDelta = delta($a, $b, $c);
if ($valorDelta == 0) {
return "A equação possui duas raízes reais e IGUAIS.";
} elseif ($valorDelta > 0) {
return "A equação possui duas raízes reais e DISTINTAS.";
} else {
return "A equação possui raízes IMAGINÁRIAS (Delta negativo).";
}
}
// Função Auxiliar que foi chamada lá em cima
function delta($a, $b, $c) {
return ($b * $b) - (4 * $a * $c);
}
?>
</body>
</html>
🛠️ Como o PHP sabe onde está a função delta()?
Note que a função delta() foi escrita depois da função equacao(). Em algumas linguagens antigas, isso daria erro. Mas o interpretador do PHP é inteligente: ele faz uma "varredura" lendo todas as funções do arquivo antes de começar a executá-las de fato. Portanto, a ordem em que você escreve suas funções não importa!
⚠️ Atenção Sênior: Cuidado com a Performance!
É possível usar a função diretamente dentro do if sem criar uma variável, fazendo algo como:
elseif(delta($a,$b,$c) > 0)
Porém, evite fazer isso! Se você chamar delta() em cada linha de if/elseif, o servidor terá que refazer a conta matemática várias vezes. Ao salvar a resposta numa variável $valorDelta = delta(...), o cálculo é feito apenas uma vez, economizando processamento da sua máquina. Essa é a marca de um programador profissional.
Destrave sua Lógica de Programação 🧠
Entender o fluxo de funções chamando funções é o que separa os amadores dos desenvolvedores plenos. Quer dominar isso com dezenas de exercícios práticos, gabaritados e organizados do zero ao avançado?
Baixar Apostila Completa de PHP📚 Consolide seu Conhecimento
A técnica que aprendemos hoje é o aquecimento perfeito para um dos conceitos mais fascinantes e temidos da computação: a recursão. Continue estudando:
- Funções Recursivas: O que acontece quando uma função invoca a si mesma?
- Como chamar funções que estão em outros arquivos (include / require)
Nenhum comentário:
Postar um comentário