Funções definidas pelo usuário

Uma função pode ser definida usando a seguinte sintaxe:

Exemplo #1 Pseudo-código de demonstração de uma função

<?php
function foo($arg_1, $arg_2, $arg_n)
{
echo
"Exemplo de função.\n";
return
$valor_retornado;
}
?>

Qualquer código PHP válido pode aparecer dentro de uma função, mesmo outras funções e definições de classes.

Nomes de funções seguem as mesmas regras que outros nomes no PHP. Um nome de função válido começa com uma letra ou um sublinhado, seguido, seguido por qualquer número de letras, números ou sublinhado. Com uma expressão regular, seria expressado com: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

As funções não precisam ser criadas antes de serem referenciadas, exceto quando uma função é condicionalmente definida como mostrado nos dois exemplos abaixo.

Quando uma função é definida condicionalmente como nos dois exemplos abaixo, sua definição precisa ser processada antes de ser chamada.

Exemplo #2 Funções definidas condicionalmente

<?php

$makefoo
= true;



bar();

if (
$makefoo) {
function
foo()
{
echo
"Eu não existo até que o programa passe por aqui.\n";
}
}



if ($makefoo) foo();

function
bar()
{
echo
"Eu existo imediatamente desde o programa começar.\n";
}

?>

Exemplo #3 Funções dentro de funções

<?php
function foo()
{
function
bar()
{
echo
"Eu não existo até foo() ser chamada.\n";
}
}



foo();



bar();

?>

Todas as funções e classes no PHP tem escopo global - elas podem ser chamadas fora de uma função mesmo que tenham sido definidas dentro e vice-versa.

O PHP não suporta sobrecarga de funções, e também não é possível cancelar ou alterar a definição de funções previamente declaradas.

Nota: Nomes de funções são case-insensitive para caracteres ASCII A até Z, mas é melhor chamar as funções da mesma forma que elas aparecem nas declarações.

Ambos número variável de argumentos e argumentos padrões são suportados em funções. veja também as referências das funções func_num_args(), func_get_arg() e func_get_args() para mais informações.

É possível chamar funções recursivas no PHP.

Exemplo #4 Funções Recursivas

<?php
function recursion($a)
{
if (
$a < 20) {
echo
"$a\n";
recursion($a + 1);
}
}
?>

Nota: Chamadas recursivas a funções/métodos acima de 100-200 níveis podem exaurir a pilha e causar o término do script. Especificamente, recursão infinita é considerada um erro de programação.

To Top