Capítulo 17. Funções

Índice
Funções definidas pelo usuário
Argumentos de funções
Retornando valores
Funções variáveis
Funções internas (built-in)

Funções definidas pelo usuário

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

Exemplo 17-1. Psuedo-código que 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.

No PHP 3, as funções precisam ser definidas antes de serem referenciadas. Esse requisito não existe no PHP 4. Exceto quando uma função é definida condicionalmente como mostrada nos dois exemplos abaixo:

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

Exemplo 17-2. Funções definidas condicionalmente

<?php

$makefoo
= true;

/* Nos nao podemos chamar foo() daqui
   porque ela ainda não existe,
   mas nos podemos chamar bar() */

bar();

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

/* Agora nos podemos chamar foo()
   porque $makefoo foi avaliado como true */

if ($makefoo) foo();

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

?>

Exemplo 17-3. Funções dentro de funções

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

/* Nós não podemos chamar bar() ainda
   porque ela ainda não foi definida. */

foo();

/* Agora nós podemos chamar bar(),
   porque o processamento de foo()
   tornou a primeira acessivel */

bar();

?>

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 insensíveis ao caso, mas é melhor chamar as funções da mesma forma que ela aparecem nas declarações.

O PHP3 não suporta número variável de argumentos para funções, apesar de os argumentos padrões serem suportados (veja Valores padrão de argumentos para mais informações). O PHP4 suporta ambos: veja Número de argumentos variável e as referências das funções func_num_args(), func_get_arg() e func_get_args() para mais informações.