Funções

No nosso manual de páginas dinâmicas vimos o conceito de função. Vimos que uma função podia ser definida como um conjunto de instruções que exploram certas variáveis para poder realizar uma tarefa mais ou menos elementar.

PHP baseia a sua eficácia principalmente neste tipo de elemento. Uma grande livraria que cresce constantemente, à medida que novas versões vão surgindo, é complementada com as funções próprias dando como resultado um sem fim de recursos que são aplicados com uma simples chamada.

As funções integradas em PHP são muito fáceis de utilizar. Só temos de realizar a chamada da forma apropriada e especificar os parâmetros e/ou variáveis necessárias para que a função realize a sua tarefa.

O que pode parecer ligeiramente mais complicado, mas que se torna sem lugar a duvidas muito pratico, é criar as nossas próprias funções. De uma forma geral, poderíamos criar as nossas funções para nos conectarmos a uma base de dados ou criar os cabeçalhos ou etiquetas META de um documento HTML. Para uma aplicação de comércio eletrónico poderíamos criar, por exemplo funções de mudança de uma moeda a outra ou de calculo de impostos a acrescentar ao preço de um artigo. Em definitiva, é interessante criar funções para a maioria de acções mais ou menos sistemáticas que realizamos nos nossos programas.

Aqui daremos o exemplo da criação de uma função que, chamada no começo do script, nos cria o cabeçalho do nosso documento HTML e coloca o título que queremos na página.

<?
Function fazer_cabecalho($titulo)
{
$cabecalho=”<html>n<head>nt<title>$titulo</title>n</head>n”;
echo $cabecalho;
}
?>

Esta função poderia ser chamada ao principio de todas as nossas páginas da seguinte forma:

$titulo=”Minha web”;
fazer_cabecalho($titulo);

Desta forma automatizamos o processo de criação do nosso documento. Poderíamos por exemplo incluir na função outras variáveis que nos ajudassem a construir as etiquetas meta e desta forma, com um esforço mínimo, criaríamos os cabeçalhos personalizados para cada uma das nossas páginas. Desta forma é nos possível criar fins de documento ou formatos diversos para os nossos textos como se fossem de folhas de estilo que teriam a vantagem de ser reconhecidas por todos os navegadores.

Claro que, a função há de ser definida dentro de um script pois não se encontra integrada em PHP, tendo que a criar nós mesmos. Na realidade isto não nos dá nenhum problema pois pode ser incluída a partir de um ficheiro no qual iremos armazenando as definições das funções que vamos criando ou compilando.

Estes ficheiros nos que se guardam as funções chamam-se livrarias. A forma de inclui-los no nosso script é a partir da instrução require ou include.

require(“livraria.php”) ou include(“livraria.php”)

Resumindo, a coisa ficaria assim:

Teríamos um ficheiro livraria.php como segue

<?
//função de cabeçalho e colocação do titulo
Function fazer_cabeçalho($titulo)
{
$cabecalho=”<html>n<head>nt<title>$titulo</title>n</head>n”;
echo $cabecalho;
}
?>

Por outra parte teríamos o nosso script principal pagina.php (por exemplo):

<?
include(“livraria.php”);
$titulo=”Minha Web”;
fazer_cabecalho($titulo);
?>
O corpo da pagina

Podemos meter todas as funções que formos encontrando dentro de um mesmo ficheiro mas torna-se muito mais vantajoso ir classificando-as em diferentes ficheiros por temática: Funções de conexão a base de dados, funções comerciais, funções gerais, etc… Isto vai ajudar-nos a localizá-las antes para as corrigir ou modificar, permite-nos também carregar unicamente o tipo de função que necessitamos para o script sem sem recarregar este em excesso para além de nos permitir utilizar um determinado tipo de livraria para diferentes sítios web.

Também se pode tornar muito prático utilizar uma nomenclatura sistemática à hora de nomeá-las: As funções comerciais poderiam ser chamadas com_qqcoisa, as bases de dados bd_qqcoisa, as de tratamento de ficheiros file_qqcoisa, Isto vai permitir reconhece-las rapidamente quando lermos o script sem ter de recorrer a nossa oxidada memória para descobrir a sua utilidade.

Não obstante, antes de nos lançarmos a criar a nossa própria função, vale a pena dar uma vista de olhos à documentação para ver se a função existe ou podemos se nos podemos aproveitar de alguma das existentes para facilitar o nosso trabalho. Assim, por exemplo, existe uma função chamada header que cria um cabeçalho HTML configurável que evita termos que a criar nós mesmos.

Como pode ver-se, a tarefa do programador pode nalguns casos parecer-se à de um coleccionador. Há que ser paciente e metódico e no fim, a base de trabalho próprio, intercâmbio e tempo podemos chegar até o nosso pequeno tesouro.

Exemplo de função

Vejamos um exemplo de criação de funções em PHP. Trata-se de fazer uma função que recebe um texto e o escreve na página com cada carácter separado por “-“. É dizer, se recebe “Ola” deve escrever “O-l-a” na página web.

Nota: Para compreender este exemplo necessitamos conhecer o loop for, que se explica no capítulo Controlo do fluxo em PHP: Loops II.

A maneira de realizar esta função será recorrer o string, carácter a caracter, para imprimir cada um dos caracteres, seguido do signo “-“. Recorremos o string com um loop for, desde o carácter 0 até ao número de caracteres total da cadeia.

O número de caracteres recebe uma cadeia e obtém-se com a função predefinida em PHP strlen(), que recebe o string entre parênteses e retorna o número dos caracteres que tem.

<html>
<head>
<title>função 1</title>
</head>

<body>

<?
function escreve_separa($cadeia){
for ($i=0;$i<strlen($cadeia);$i++){
echo $cadeia[$i];
if ($i<strlen($cadeia)-1)
echo “-“;
}
}

escreve_separa (“Ola”);
echo “<p>”;
escreve_separa (“Texto mais comprido, a ver o que faz”);
?>
</body>
</html>

A função que acabámos de criar chama-se escreve_separa e recebe como parâmetro a cadeia que há que escrever com o separador “-“. O loop for serve-nos para recorrer a cadeia, desde o primeiro ao ultimo caracter. Depois, dentro do loop, imprime-se cada caracter separado pelo signo “-“. O if que há dentro do loop for comprova se o atual não seja o ultimo carácter, porque neste caso não teríamos que escrever o signo “-” (queremos conseguir “o-l-a” e se não estive-se o if obteríamos “o-l-a-“).

Fonte: http://www.criarweb.com/artigos/85.php

Deixe um comentário