![]() |
![]() | |||||||||||
|
Funções Índice da página:
|
||||||||||||
![]() | ||||||||||||
|
Uma Função é um bloco de código que pode ser defenido e depois invocado em qualquer parte do programa.
Na generalidade uma função recebe um ou mais argumentos, executa o código da função e retorna o valor do resultado. Se a função tiver mais de um argumento estes serão separados por vírgulas. As variáveis que passam os valores para a função são denominadas de argumentos e as variáveis da função são chamadas de parâmetros . As funções por valor desenvolvem o código da função e alteram os seus parâmetros mas a variável de argumento no programa base continua inalterável. O exemplo em baixo mostra uma pequena função que converte Km a Milhas.
<?php
echo '<body onload="NumText.Km.focus()">';
echo '<form action="exe014.php" method="get" name="NumText">';
echo 'Entre Kilómetros:<input type="text" name="Km" size="6"> ';
echo '<input type="submit" value="Aceitar"></form>';
$a=Miles($Km);
echo "$Km Kilometro(s) corresponde a: $a Milha(s)";
function Miles($Kilometro){
return $Kilometro * 0.624;}
?>
A diferença principal neste tipo de funções, está na transposição do valor do parâmetro para o valor do
argumento. Isto significa que se o código da função alterar o valor da variável do argumento este também será alterado no seu programa base. Para indicar que o parâmetro é de referência, basta colocar o signo & antes da variável do parâmetro que desejar referenciar. No exemplo apresentamos a conversão de um preço custo com um valor de percentagem variável.
<?php
echo '<body onload="NumText.Valor.focus()">';
echo '<form action="exe015.php" method="get" name="NumText">';
echo 'Entre Valor: <input type="text" name="Valor" size="8"> ';
echo 'Entre Desconto:<input type="text" name="Percent" size="5">%';
echo '<input type="submit" value="Calcular"></form>';
echo "Custo base = $Valor €<br>";
$a=Desconto($Valor,$Percent);
echo("Tem a Pagar: $Valor € com Desconto de $Percent%");
function Desconto(&$Val,$Perc){
$Val -= $Val * $Perc/100;}
?>
No php variáveis podem ser referenciadas a funções. Assim podemos tomar uma acção referenciada a uma variável
e indexar qual a função que desejamos efectuar. No exemplo seguinte veremos um exemplo de quatro funções indexadas por uma variável pelo controlo da Hora.
<?php
echo '<body onload="NumText.Hora.focus()">';
echo '<form action="exe016.php" method="get" name="NumText">';
echo 'Entre Hora: (0-24) <input type="text" name="Hora" size="6"> ';
echo '<input type="submit" value="Mostrar"></form>';
$output_function="semhora";
if ($Hora >= 6 && $Hora <= 12 && $Hora != ""){
$output_function = "manha";}
if ($Hora >12 && $Hora <=19 && $Hora != ""){
$output_function = "tarde";}
if ($Hora >19 && $Hora <25 || $Hora <6 && $Hora != ""){
$output_function = "noite";}
$a=$output_function();
function manha(){
echo "Bom Dia";}
function tarde(){
echo "Boa Tarde";}
function noite(){
echo "Boa Noite";}
function semhora(){
echo "Bem Vindo";}
?>
Validar Data é essencial para verificação de entradas em seus formulários. Existe no php uma função
ereg num capítulo de Regular Expressions, mas na prática verifiquei que esta função
é bastante falível e complexa a sua utilização. Veja curso (Regex Posix).
Um Bom método é criar uma class file tipo OOP para os seus formulários (Veja Curso de OOP) e usar pequenas funções para os diversos tipos de entrada. No exemplo apresentamos uma função que não permite uma entrada em branco e só permite caracteres válidos para Nomes.
<?php
echo '<onload="NumText.Nome.focus()">';
echo '<form action="exe017.php" method="get" name="NumText">';
echo 'Entre Nome: <input type="text" name="Nome" size="8"> ';
echo '<input type="submit" value="Mostrar" name="Sub" class="bot"></form>';
if ($Sub !=""){Vernome($Nome);
echo "Seu Nome: ".$Nome;}
function Vernome($Nome){
If (!$Nome){
echo "Texto Nome Não pode Estar Vazio!";Exit;}
$sign="\|!@#$%&/{([)]=}?'»«^~€+*´`ªº<>,;.:-_/0123456789";
for ($n=0; $n<strlen($Nome); ++$n){
$ck=substr($Nome,$n,1);
for ($m=0; $m<strlen($sign); ++$m){
if ($ck == substr($sign,$m,1)){
echo "Seu Nome parece estar errado!.";Exit;}}}}
?>
| ||||||||||||
![]() | ||||||||||||
![]() |
![]() |
![]() |
![]() | |||||||||