Palavra:   

Revista PHP / PHP

Flávia Jobstraibizer

Analista de sistemas, DBA Mysql, PostgreSQL, Oracle, SQLServer e Firebird. Desenvolvedora de sistemas, e administradora de servidores FreeBSD. Conheça o site www.flaviajobs.com.br

Funções: Aprenda a criar as suas

Todos os dias ao desenvolver algum código nos deparamos com determinadas situações, em que o uso de funções, torna o trabalho mais simples. Porém tem gente que perde muito tempo procurando funções que façam aquilo que precisam, sendo que com metade desse tempo perdido, poderiam criar as suas próprias funções.

É muito útil saber como criar ou modificar uma função, pois você terá maior controle sobre o funcionamento da mesma, poderá personalizá-la com o intuito específico de realizar as ações que você necessita, e no final, também é um ótimo início pra quem ainda não sabe nada de orientação à objeto, afinal de contas, as classes da programação orientada a objeto contém grandes quantidades de conjuntos de funções.

Definição: Uma função é um bloco de código, que geralmente contém um conjunto de instruções para determinada tarefa. Não são pesadas, nem tornam o código lento, uma vez que ficam inativas até serem chamadas em algum momento do código. Reduzem drasticamente o trabalho de redigitar códigos, e seus conseqüentes erros, pois uma vez constrúida, pode ser utilizada em qualquer lugar de seus scripts, e caso precise alteração, você não precisará trocar em todos os scripts, apenas no seu arquivo de funções.

Composição: As funções são compostas da palavra reservada function e o nome que você dará a ela. Estas funções são popularmente chamadas de "funções definidas pelo programador", visto que é o programador quem as cria, diferentemente das funções nativas do PHP, cujas mesmas já vem compiladas na linguagem.

A montagem do bloco de função é bem simples. Exemplo:

PHP
  1. function nomedafuncao() {
  2.  //conteudo
  3. }
www.revistaphp.com.br
A forma mais simples de centralizar suas funções, é em um arquivo à parte (ou vários arquivos à parte, depende da sua organização).
Eu por exemplo uso vários arquivos em uma pasta apenas de funções. e os organizo desta forma:
functions/funcoes_data.php
functions/funcoes_texto.php
functions/funcoes_acentos.php
functions/funcoes_formatacoes_diversas.php

Ou seja, desta forma é bem simples editá-las caso tenha necessidade. Assim, jamais vou abrir meus scripts em produção para trocar alguma coisa, apenas vou modificar na função e estará feito.
Crie seus arquivos de funções como melhor preferir para se organizar melhor, e mão na massa.

Cenário: Tarefas repetitivas como selecionar um banco de dados, seriam muito mais fáceis se você pudesse com ma única linha reaproveitar o código para sua aplicação inteira. Facilitaria a sua vida, não?

Exemplo:
PHP
  1. function selecionabanco($banco) {
  2. return mysql_select_db($banco);
  3. }
www.revistaphp.com.br
Desta forma, você tem no seu arquivo de funções, a função selecionabanco, que receberá através da variável $banco, o nome do banco de dados. No lugar da variável $banco, você pode colocar o nome do seu banco, porém não recomendo, pois assim você estaria engessando seu código. Vamos trabalhar sempre dinamicamente.

Assim, durante a execução do seu script, na hora de selecionar banco, você apenas fará a chamada da função selecionabanco, como exemplos que vou mostrar adiante.

Uma vez que você inclua seus arquivos de funções nas páginas, as funções continuarão inativas a menos que você as chame.
Lembrando que é você quem decide o que vai ter dentro da sua função, afinal você é quem sabe da sua necessidade.

Toda tarefa repetitiva, pode ser substituida por funções, afim de tornar seu desenvolvimento mais produtivo. Querys, formatações, padronizações, etc. Todas podem ser incluídas em funções. Pense no problema e crie uma função para resolvê-lo. Deixe que elas trabalhem por você.

Exemplos:
PHP
  1. function escrevetexto() {
  2. print("Este e o texto a ser escrito sempre que eu chamar a funcao escrevetexto");
  3. }
  4. echo escrevetexto();
www.revistaphp.com.br
Note que esta função apenas escreve um texto qualquer definido dentro da função.
PHP
  1. function criatabela($texto) {
  2. print("<table border=1 cellpadding=0 cellspacing=0><tr>");
  3. print("<td>$texto</td>");
  4. print("</tr></table>");
  5. }
  6.  
  7. echo criatabela('o texto que sera mostrado na variavel $texto dentro da funcao!');
www.revistaphp.com.br
Já esta função, cria uma tabela simples, e dentro da célula, um texto, que será definido em uma variável na chamada da função. Lembre-se que isso pode ser dinamico, e o texto substituido por um valor proveniente de um banco de dados, etc.

PHP
  1. function montapagina(){
  2. require_once("../template/topo.php");
  3. require_once("../template/conteudo.php");
  4. require_once("../template/rodape.php");
  5. }
  6.  
  7. print montapagina();
www.revistaphp.com.br
Acima você pode ter uma idéia de como seria simples caso você tenha um gerador de páginas, montar a página com uma simples função! Ou seja, toda vez que você quiser montar uma nova página, basta uma linha de código.

Espero que isso tenha esclarecido o tema, aproveitando pra indicar a página de funções do manual do PHP, http://br2.php.net/manual/pt_BR/language.functions.php e lembrando que é necessário perder o medo de errar, para poder aprender. Pare de procurar por funções prontas e bem vindo ao mundo do "faça você mesmo"!!!

Opções de Interação

Comentários

Selecionando o banco
Por: Milrak, 29/07/2010   15:17:56
Eu concordo com as duas formas, todas funcionam; mais seria mais pratica usar a dica do nosso amigo César, não dispresando o artigo da colega Flávia, apessar de tudo só foi um exemplo...

:P
Funções
Por: César, 02/07/2008   12:08:09
Legal, so pensei qe pudessemos expandir um pouco mais o uso... abrax
Óbvio
Por: Flávia, 02/07/2008   11:48:57
Claro colega, porém o artigo trata de ensinar a criar funções. Como o usuário vai utilizá-las é assunto dele. abraço.
Funções
Por: César, 02/07/2008   11:44:10
Legal flavia, e sempre uma boa pratica o encapsulamento do codigo, so uma coisa, para funçoes de uso constante com selecionar o banco de dados nao seria melhor deixa-la no cabeçalho do arqivo requerido? pra que nao precise ficar chamando a função toda hora, assim qando entra na pagina ja conecta no banco, e não precisa ficar trabalhando com o retorno da função e tal.... abraço
boa..
Por: Ricardo, 01/07/2008   14:00:06
esse artigo eu gostei, mostrou de forma muito clara o uso de funções.. parabéns.