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.