Conceitos Fundamentais de Funções
Funções são blocos de código projetados para executar tarefas específicas, promovendo reutilização e organização. Em PHP, existem funções definidas pelo usuário e funções internas do sistema.
Sintaxe Básica para Definir Funções
A estrutura padrão para criar uma função em PHP é:
function nomeFuncao($parametros) {
// Corpo da função
return $resultado;
}
Utilizar funções evita a duplicação de código, facilitando manutenção e reduzindo erros. Por exemplo, encapsular lógicas complexas em uma função permite chamá-la sempre que necessário.
Exemplo Prático: Função de Cálculo
Considere uma função que realiza operações matemáticas básicas. No primeiro arquivo, definimos a função:
<?php
function calcular($val1, $val2, $op) {
$resultado = 0;
if ($op == "+") {
$resultado = $val1 + $val2;
} elseif ($op == "-") {
$resultado = $val1 - $val2;
} elseif ($op == "*") {
$resultado = $val1 * $val2;
} elseif ($op == "/") {
$resultado = $val1 / $val2;
} else {
echo "Operação inválida";
return null;
}
return $resultado;
}
?>
No segundo arquivo, incluímos o primeiro e chamamos a função:
<?php
require "arquivo1.php";
$a = 15;
$b = 5;
$operador = "*";
$res = calcular($a, $b, $operador);
echo "Resultado: " . $res;
?>
Inclusão de Arquivos em PHP
Para compartilhar funções entre arquivos, PHP fornece funções de inclusão. As principais são:
- require(): Inclui um arquivo e gera um erro fatal se não encontrado, interrompendo a execução.
- require_once(): Similar ao require, mas verifica se o arquivo já foi incluído anteriormente.
- include(): Inclui um arquivo e gera um aviso se não encontrado, permitinod que o script continue.
- include_once(): Similar ao include, com verificação de inclusão prévia.
Exemplo de uso com include_once:
arquivoA.php
<?php
echo "Primeira inclusão!";
?>
arquivoB.php
<?php
include_once "arquivoA.php";
include_once "arquivoA.php";
?>
Neste caso, "Primeira inclusão!" será exibida apenas uma vez.
Comportamento de Inclusão com Erros
Se um arquivo não existir, include gera um aviso, mas o script continau:
arquivoC.php
<?php
echo "Conteúdo!";
?>
arquivoD.php
<?php
include "arquivoInexistente.php";
include "arquivoC.php";
echo "Execução adicional!";
?>
Aqui, "Conteúdo!" e "Execução adicional!" serão exibidos apesar do aviso. Com require, o script pararia no erro.
Recursão e Pilha de Chamadas
Funções podem chamar a si mesmas, caracterizando recursão. Cada chamada cria uma nova entrada na pilha de execução. Considere:
<?php
function contar($n) {
if ($n > 0) {
contar($n - 1);
}
echo "Valor: " . $n . "<br>";
}
contar(3);
?>
Isso resultará na saída: Valor: 0, Valor: 1, Valor: 2, Valor: 3, devido à ordem de execução da pilha.
Regras para Funções em PHP
- Funções podem aceitar múltiplos parâmetros de qualquer tipo de dado.
- Nomes de funções seguem regras semelhantes a variáveis: devem começar com uma letra ou sublinhado.
- Variáveis dentro de funções são locais, a menos que declaradas como globais com a palavra-chave global.