Manual do PHP
Anterior |  | Próxima

# Capítulo 17. Funções

# 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.

Anterior | Principal | Próxima
include_once() | Acima | Argumentos de funções