Durante o desenvolvimento de um projeto necessitamos realizar a mesma operação várias vezes e com isso acabamos reescrevendo códigos e mais códigos. Para resolver este problema podemos usar funções definidas pelo usuário.
Um ótimo exemplo para ilustrar onde seria ideal usar uma função definida pelo usuário seria em uma lista onde o título das notícias são listadas, mas, não podem ocupar duas linhas e nem ultrapassar a margem do layout, algo como:
| 18/04/2007 – Todos os sites de notícia estão publicando algo relacionado ao papa bento XVI |
| 19/04/2007 – Esta notícia não ultrapassa o tamanho máximo |
Note que a primeira notícia ocupou duas linhas deixando o layout um pouco “desajeitado”, podemos corrigir isso tanto no título da notícia quanto em outros locais onde julgarmos necessário utilizando uma função similar a esta.
<?PHP
function cortaString($strVar, $intMax){
echo Substr($strVar, 0, $intMax);
}
?>
$titulo = “Todos os sites de notícia estão publicando algo relacionado ao papa bento XVI”;
cortaString($titulo, 30);
Que isso?
Esta função precisa de dois parâmetros, o primeiro $strVar deve ser uma string de qualquer tamanho, o segundo, $intMax que deve ser um número inteiro.
O que isso faz?
Esta função “corta” parte da string informada em $strVar quando ela alcançar o valor máximo de caracteres permitido que for informado por $intMax, ou seja, quando a string tiver mais de trinta caracteres o excedente não será apresentado.
Outras formas
Você pode também precisar definir um valor padrão para a sua função, isso permite que você possa utilizá-la com outros valores que não foram estipulados por você quando a criou.
Vamos supor que você precisa cortar parte de um texto title existente em um link.
<a href="http://www.vibemidia.com/blog/todos_os_sites_de_notícia_estao_publicando_algo_relacionado_ao_papa_bento_XVI" title="Todos os sites de notícia estão publicando algo relacionado ao papa bento XVI">Primeira notícia do dia 18/04/2007</a>
Note que neste caso tanto o link como o atributo title são muito grandes, o atributo title por sua vez não poderá ser visto por completo, sendo assim, estaremos enviando código inútil para o navegador do usuário, podemos então remover parte do valor deste atributo com a nossa função.
Vamos fazer um tuning na função
<?PHP
function cortaString($strVar, $intMax = 30){
echo Substr($strVar, 0, $intMax);
}
?>
Adicionei agora um valor padrão para nossa função, este valor será usado somente se na chamada da função não for informado o valor, sendo assim, qualquer valor informado será utilizado e o valor padrão é ignorado.
<a href=”http://www.vibemidia.com/blog/todos_os_sites_de_notícia_estao_publicando_algo_relacionado_ao_papa_bento_XVI” title=”<?PHP echo cortaString($titulo, 20); ?>”>Primeira notícia do dia 18/04/2007</a>
Caso precisar utilizar a mesma função para apresentar no máximo 30 caracteres (nosso valor padrão) poderíamos usar assim.
<a href="http://www.vibemidia.com/blog/todos_os_sites_de_notícia_estao_publicando_algo_relacionado_ao_papa_bento_XVI" title="<?PHP echo cortaString($titulo); ?>">Primeira notícia do dia 18/04/2007</a>
Note que não informei o segundo parâmetro da função, isso por que quero que sejam apresentados apenas os trinta primeiros caracteres da string $titulo.
É muito importante observar que os valores padrão somente iram funcionar de forma esperada se forem os últimos parâmetros declarados na função.
Também é possível utilizar a função apenas para retornar valores sem que este valor seja exibido no navegador, esta é a forma mais utilizada já que possibilita trabalhar os valores antes de exibi-los.
<?PHP
function cortaString($strVar, $intMax = 30){
return Substr($strVar, 0, $intMax);
}
?>
A mudança na função foi realizada apenas na troca de echo por return.
O que faz esse tal de return?
R.: Ele retorna o valor informado em seu argumento e para a execução.
Qual a vantagem de usar return ou echo?
R.: Quando usamos echo ficamos presos a usar a função apenas quando não precisamos trabalhar o valor retornado pela função. Com o return podemos utilizar o valor retornado e trabalhar com ele em outra função, classe ou mesmo adicionar tags HTML para somente depois exibir o valor no navegador.
Agora quando formos exibir o resultado de nossa função precisamos usar o echo algo assim…
<?PHP
echo cortaString($strVar, 30);
?>
Termos relacionados:
- php atributo função
- projeto trabalhando com funções
Este post foi útil? Retribua clicando no botão





