Como Trabalhar com Funções em PHP
Olá, nesse artigo vamos abordar o tema Funções definidas pelo programador em PHP.
O que são funções definidas pelo programador?
Em PHP, o programador pode criar funções para executar um bloco de código em qualquer parte do programa:
<?php
function exemplo1($parametro1, $parametro2, ..., $parametroN){
echo "Primeira função em PHP.\n";
return $valor_retornado;
}
?>
No PHP, não é necessário pré-definir as funções antes de usar (Apenas no PHP 3).
Essa necessidade ocorre apenas em funções definidas condicionalmente, ou seja, elas devem ser “declaradas” antes de serem referenciadas, como mostra o exemplo abaixo.
<?php
/* funcao_nao_declarada() não pode ser chamada aqui
porque ela ainda não existe,
mas nos podemos chamar funcao_declarada() */
funcao_declarada();
function funcao_nao_declarada(){
echo "Eu não existo até que o programa passe por aqui.\n";
}
/* Agora nos podemos chamar função_nao_declarada()
Porque ela foi criada */
função_nao_declarada();
function função_declarada(){
echo "Eu existo imediatamente desde o programa começar.\n";
}
?>
Em PHP, como em varias outras linguagens de programação, podemos criar funções dentro de outras. Vejamos um simples exemplo.
Exemplo:
<?php
function funcao1(){
function funcao2(){
echo "Eu não existo até funcao1() ser chamada.\n";
}
}
/* Nós não podemos chamar funcao2()
porque ela ainda não foi definida. */
funcao1();
/* Agora nós podemos chamar funcao2(),
porque o processamento de funcao1()
tornou a funcao2() acessível */
funcao2();
?>
Basicamente essa técnica muito utilizada por diversos programadores torna-se muito útil sendo bem implementada.
Seu funcionamento é muito simples, a funcao2() que está escrita dentro da funcao1() é conhecida pelo programa assim que a funcao1() é chamada, assim podendo ser chamada a qualquer momento pelo programador.
Breve Introdução a Recursividade.
Esse artigo não tem por foco principal ensinar técnicas de programação e sim a linguagem PHP em si e suas peculiaridades. Mas como estamos falando sobre funções achei interessante comentar sobre essa incrível técnica “Recursividade”, e dar um exemplo simples de sua implementação.
Recursividade nada mais é do que a função chamar ela mesmo dentro do seu escopo.
A primeira coisa a se pensar quando se está implementado uma função recursiva é pensar em um ponto de parada de acordo com sua funcionalidade. Por exemplo:
Calculo de fatorial, o ponto de parada seria o numero desejado para se efetuar o cálculo.
Exemplo:
<?php
fatorial($n){
if($n > 0)
return $n*fatorial($n-1);
else
return 1;
echo("O fatorial de".$n."é".fatorial($n));
return 0;
}
?>
Note que a função fatorial() chama ela mesma passando como parâmetro o valor de n-1 e tem como ponto de parada o valor de n = 0.
Esta técnica deve ser utilizada com o maior cuidado possível, pois se aplicada erroneamente ocorre muito consumo de memória da máquina.
