Ferramentas de Usuário

Ferramentas de Site


dev_web:php:funcoes

Funções

Funções definidas pelo utilizador não são realmente necessárias, pode-se produzir sites interessantes e úteis sem recorrer a funções definidas pelo utilizador mas apenas a construções básicas e funções já existentes no PHP. Se acha que os seus ficheiros em PHP estão a ficar demasiados grandes, difíceis de perceber, e difícil de fazer a gestão pense em usar funções.

O que é uma função?

Função é uma maneira de pegar num pedaço de código dar-lhe um nome e pô-lo a parte e quando quiser pode chama-lo pelo nome, são especialmente úteis quando vamos usar esse pedaço de código várias vezes, no entanto em situações que só são usadas uma vez também são úteis por permite dividir bem o código tornando-o mais legível.

Sintaxe

function nome-da-funcao ($arg1, $arg2, ...) {
  instrucoes;
  [[php:return|$valor;]]
}

Uma função em PHP é obrigatoriamente composta por um nome, que tem de começar por uma letra (a-z ou A-Z), ou um underscore. Em frente ao nome da função, pode seguir-se uma lista de parâmetros, que poderão ser usados sob forma de variáveis com o mesmo nome da nossa função. Dentro da função, entre chavetas ({}), coloca-se o código pretendido, e por fim, se for necessário, retornar o valor dos cálculos efectuados através da instrução return.

Funções recursivas

Existem também as chamadas funções recursivas, ou seja, que se chamam a si próprias até chegar a uma condição de paragem. Consideremos o exemplo do cálculo do factorial:

function calculaFactorial($i) {
  if ($i > 0) {
    return $i * calculaFactorial($i - 1);
  } else {
    return 1;
  }
}

Como se pode ver temos duas situações: o passo, que irá chamar recursivamente a função de modo a calcular o factorial dos números, e a base, ou seja, quando o número for 0, retorna o resultado final (multiplica-o por 1, deixando-o igual). Concluindo, em PHP as funções recursivas funcionam de modo análogo a outras linguagens.

Exemplos

Exemplo de como fazer uma função a somar dois valores:

<?php
function soma ($valor1, $valor2) {
  return($valor1 + $valor2);
}
 
# se os valores foram enviados correctamente...
if (isset($_POST['valor1']) && isset($_POST['valor2'])) {
  # chamar a função soma, com 2 argumentos: o 1º valor e 2º valor
  echo "O resultado da soma é: ".soma($_POST['valor1'], $_POST['valor2']);
}
?>

O código HTML é o seguinte e deverá ser colocado após o código PHP:

<html>
<body>
<form method="post">
  Valor 1 
  <input name="valor1" type="text" maxlength="20">
 
  Valor 2 
  <input name="valor2" type="text" maxlength="20">
 
  <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>
De salientar que a função soma não verifica se a variável se trata ou não de um tipo numérico.
dev_web/php/funcoes.txt · Última modificação em: 2018/05/14 21:37 (edição externa)