Back-End

23 nov, 2017

Funções em PHP

Publicidade

A declaração de funções no PHP, bem como na maioria das linguagens de programação, é feita a partir da palavra reservada function, seguida do nome da função e de sua lista de argumentos, enquanto o corpo da função é delimitado por chaves ({…}), entre as quais deve ficar todo o conjunto de instruções a ser executado quando a função for invocada.

A estrutura básica de uma função é assim:

function nomeFuncao($par1, $par2, $par3...$parN) {
     //instruções 
}  

Algumas considerações sobre o código acima:

  • A palavra reservada function é imutável e obrigatória, é ela que define o bloco de código como uma função.
  • O nome_funcao deve ser um nome o mais auto explicativo possível, pelo qual as invocações sejam facilmente entendidas e identificadas.
  • Assim como as variáveis, as funções não podem ser iniciadas com números ou caracteres especiais, exceto o underline (_). Trabalhando em paradigma de orientação a objetos, inicia-se o nome da função com letra minúscula por convenção.
  • Os valores entre parênteses são chamados de parâmetros ou argumentos e são valores dos quais a função depende para ser executada corretamente. Nem sempre os argumentos são necessários, então pode-se omiti-los na definição da função, mantendo apenas os parênteses.

As funções podem ser classificadas quanto ao seu retorno como vazias (void) ou com retorno. As funções void ou sem retorno apenas executam uma série de comandos sem a obrigação de devolver um valor específico como resultado. Já as funções com retorno, ao serem executadas, resultam diretamente em um dado valor que, no PHP, não tem tipo de dado definido.

A seguir, são apresentados alguns exemplos que demonstram a utilização desses conceitos, além de mostrar como utilizar as funções após sua definição.

Função sem parâmetro e sem retorno:

function exibirMensagem() {
    echo "Olá\n";
    echo "Seja Bem Vindo(a)!" 
}

Função com parâmetro e sem retorno:

function exibirMensagem($nome) {
    echo "Olá\n";    
    echo $nome 
}

Invocando uma função sem retorno:

<?php     
    //definição da função     
   function exibirMensagem($nome) {
      echo "Olá\n";         
      echo $nome;    
   }           

   //chamando a função     
   exibirMensagem("Joel Rodrigues"); 
?>

A chamada à função sem parâmetro é ainda mais simples, bastaria não informar nenhum valor entre parênteses.

Função sem parâmetro e com retorno:

<?php    
   //definição da função    
   function exibirMensagem() {
  	echo "Olá\n";        
  	echo "Joel Rodrigues";
   }         
 
   //chamando a função    
   exibirMensagem();
?>

Outro exemplo:

<?php     
   //definição da função     
   function dia_atual() {
      $hoje = getdate();         
      switch($hoje["wday"]) {
         case 0:             
            return "Domingo";             
            break;             
         case 1:             
            return "Segunda";             
            break;             
         case 2:             
            return "Terça";             
            break;             
         case 3:             
            return "Quarta";             
            break;             
         case 4:             
            return "Quinta";             
            break;             
         case 5:             
            return "Sexta";             
            break;             
         case 6:             
            return "Sábado";             
            break;         
      }     
}     
    //chamada à função     
    $dia = dia_atual();
    echo $dia; 
?>

A função dia_atual() verifica o dia da semana e de acordo com seu valor (inteiro entre 0 e 6), retorna o nome dia em português. A palavra reservada return é utilizada para definir o resultado da função e sinaliza também o fim da execução da mesma. Qualquer código que venha a ser posto após o return (o que não deve ocorrer) será desconsiderado.

Função com parâmetro e com retorno

<?php     
   //definição da função     
   function somar($numA, $numB)   {
      return $numA + $numB;
   }       
   
   $resultado = somar(1,2);     
   echo $resultado; 
?>