Dot Sharp Consulting

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.

Autor

Rodrigo Tenedini Castela - Desenvolvedor de Softwares com experiência em PHP e outras linguagens de programação.

Todos os textos disponiveis no site tem como objetivo mostrar casos praticos de uso, não nos responsabilizamos de forma alguma por problemas causados pelo mau uso das informações.
Valid CSS! Valid XHTML 1.1