English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico do PHP

Tutorial Avançado do PHP

PHP & MySQL

Manual de Referência do PHP

Função PHP

Neste tutorial, você aprenderá como criar suas próprias funções personalizadas no PHP.

Funções integradas do PHP

As funções são blocos de código independentes que executam tarefas específicas.

O PHP possui uma grande coleção de funções integradas que você pode chamar diretamente em seus scripts PHP para executar tarefas específicas, como: gettype(), print_r(), var_dump() e outros.

Consulte a seção de referência do PHP para obter uma lista completa de funções integradas úteis.

Funções definidas pelo usuário no PHP

Além das funções integradas, o PHP permite que você defina suas próprias funções. Esta é uma maneira de criar pacotes de código reutilizáveis para tarefas específicas, que podem ser armazenados e mantidos separadamente do programa principal. Aqui estão alguns dos benefícios de usar funções:

  • As funções reduzem a repetição do código no programa - As funções permitem que você extraia blocos de código comuns para um único componente. Agora, você pode chamar essa função em qualquer lugar do script para executar a mesma tarefa, sem a necessidade de copiar e colar o mesmo bloco de código várias vezes.

  • As funções facilitam a manutenção do código - Como uma função pode ser usada várias vezes, qualquer alteração feita dentro dela será implementada automaticamente em todos os lugares, sem a necessidade de modificar vários arquivos.

  • As funções facilitam a eliminação de erros - Ao dividir o programa em funções, se ocorrer algum erro, você saberá exatamente qual função causou o erro e onde pode encontrá-lo. Portanto, corrigir erros se torna muito mais fácil.

  • As funcionalidades podem ser reutilizadas em outros aplicativos - Como as funções estão separadas do resto do script, é possível reutilizar a mesma funcionalidade em outros aplicativos apenas incluindo o arquivo php que contém essas funções.

A próxima seção mostrará como definir facilmente suas próprias funções no PHP.

Criar e chamar funções

A sintaxe básica para criar uma função personalizada pode ser dada:

function functionName() { 
    //O código a ser executado
}

A declaração de função definida pelo usuário começa com a palavra function, seguida do nome da função a ser criada, seguido de parênteses, e, finalmente, o código da função colocado entre chaves { }.

Este é um exemplo simples de função definida pelo usuário, mostrando a data de hoje:

<?php
//Definir função
function whatIsToday() {
    echo "Hoje é " . date('l', mktime());
}
//Chamada de função
whatIsToday();
?>
Teste e veja‹/›

Atenção:O nome da função deve começar com um caractere alfabético ou underline, não com um número, e pode ser seguido por mais caracteres alfabéticos, números ou underlines. O nome da função não distingue maiúsculas e minúsculas.

Função com parâmetros

Você pode especificar parâmetros ao definir uma função para aceitar valores de entrada no tempo de execução. A maneira como os parâmetros funcionam é semelhante a variáveis de placeholder dentro da função; eles são substituídos pelos valores fornecidos na chamada da função (chamados de parâmetros).

function myFunc($oneParameter, $anotherParameter) { 
    //O código a ser executado
}

Você pode definir quantos parâmetros quiser. No entanto, para cada parâmetro especificado, você precisa passar o parâmetro correspondente para a função ao chamá-la.

A função getSum() neste exemplo é usada para somar dois valores inteiros como parâmetros, simplesmente somando-os e exibindo o resultado no navegador.

<?php
//Definir função
function getSum($num1, $num2{
  $sum = $num1 + $num2;
  echo "dois números $num1e $num2a soma é: $sum";
}
 
//Chamada de função
getSum(10, 20);
?>
Teste e veja‹/›

A saída do código acima será:

dois números10Soma2A soma de 0 é: 30

Dica:Os parâmetros são os valores que você passa para a função, e os parâmetros são as variáveis que recebem os parâmetros dentro da função. Mas, no uso comum, esses termos são intercambiáveis, ou seja, os parâmetros são argumentos.

Função com parâmetros opcionais e valores padrão

Você também pode criar funções com parâmetros opcionais - Basta inserir o nome do parâmetro, seguido de um igual (=), e em seguida, o valor padrão, conforme mostrado a seguir.

<?php
//Definir função
function customFont($font, $size=1.5{
    echo "<p style=\"font-family: $font; font-size: {$size}em;">Hello, world!/p>";
}
 
//Chamada de função
customFont("Arial", 2);
customFont("Times", 3);
customFont("Courier");
?>
Teste e veja‹/›

Como você pode ver, a terceira chamada para customFont () não inclui o segundo parâmetro. Isso fará com que o motor PHP use o valor padrão do parâmetro $size, ou seja1.5。

Retorno de valores da função

Uma função pode usar a instrução return para retornar valores para o script que a chamou. O valor pode ser de qualquer tipo, incluindo arrays e objetos.

<?php
//Definir função
function getSum($num1, $num2{
    $total = $num1 + $num2;
    return $total;
}
 
//Imprimir valor retornado
echo getSum(5, 10); // Saída: 15
?>
Teste e veja‹/›

Uma função não pode retornar vários valores. No entanto, você pode obter um resultado semelhante retornando um array, como no exemplo a seguir.

<?php
//Definir função
function divideNumbers($dividend, $divisor){
    $quotient = $dividend / $divisor;
    $array = array($dividend, $divisor, $quotient);
    return $array;
}
 
//Atribuição de variáveis como array
list($dividend, $divisor, $quotient) = divideNumbers(10, 2);
echo $dividend;  // Saída: 10
echo $divisor;   // Saída: 2
echo $quotient;  // Saída: 5
?>
Teste e veja‹/›

Passagem por referência de parâmetros para uma função

No PHP, existem duas maneiras de passar parâmetros para uma função: passagem por valor e passagem por referência. Pelo padrão, os parâmetros de função são passados por valor, então se o valor do parâmetro dentro da função for alterado, ele não será afetado pelo exterior da função. Mas, para permitir que a função modifique seus parâmetros, eles devem ser passados por referência.

A maneira de passar parâmetros por referência é adicionar o sinal de crase (&) ao nome do parâmetro na definição da função, como mostrado no exemplo a seguir:

<?php
/* Definir uma função que multiplica números
e retornar novo valor */
function selfMultiply(&$number){
    $number *=
    return $number;
}
 
$mynum = 5;
echo $mynum; // Saída: 5
 
selfMultiply($mynum);
echo $mynum; // Saída: 25
?>
Teste e veja‹/›

Entender o escopo de variável

Você pode declarar variáveis em qualquer lugar do script PHP. No entanto, o local de declaração determina o escopo de visibilidade da variável no programa PHP, ou seja, onde a variável pode ser usada ou acessada. Esta acessibilidade é chamada deEscopo de variável

Por padrão, as variáveis declaradas dentro de uma função são variáveis locais e não podem ser acessadas ou operadas fora da função, como mostrado no exemplo a seguir:

<?php
//Definir função
function test(){
    $greet = "Hello World!";
    echo $greet;
}
 
test(); // Saída: Hello World!
 
echo $greet; //Erro de variável não definida
?>
Teste e veja‹/›

Da mesma forma, se tentar acessar ou importar uma variável externa dentro da função, você obterá um erro de variável não definida, como mostrado no exemplo a seguir:

<?php
$greet = "Hello World!";
 
//Definir função
function test(){
    echo $greet;
}
 
test();  //Erro de variável não definida
 
echo $greet; // Saída: Hello World!
?>
Teste e veja‹/›

Como pode ser visto no exemplo acima, não é possível acessar variáveis declaradas dentro da função externamente, e, da mesma forma, não é possível acessar variáveis declaradas externamente dentro da função. Esta separação reduz as chances de variáveis dentro da função serem afetadas por variáveis no programa principal.

Dica:Você pode usar o mesmo nome para variáveis em diferentes funções, pois as variáveis locais só podem ser reconhecidas pelas funções que as declaram.

Palavra-chave global

Em alguns casos, você pode precisar importar variáveis do programa principal para dentro da função, e vice-versa. Neste caso, você pode usar a palavra-chave global antes da variável dentro da função. Esta palavra-chave converte a variável em uma variável global, tornando-a visível ou acessível tanto dentro quanto fora da função, como mostrado no exemplo a seguir:

<?php
$greet = "Hello World!";
 
//Definir função
function test(){
    global $greet;
    echo $greet;
}
 
test(); // Saída: Hello World!
echo $greet; // Saída: Hello World!
 
//Atribuir novo valor à variável
$greet = "Goodbye";
 
test(); // Saída: Goodbye
echo $greet; // Saída: Goodbye
?>
Teste e veja‹/›

Você veráClasses e objetos PHPPara obter mais informações sobre visibilidade e controle de acesso, consulte este capítulo.

Criar função recursiva

Uma função recursiva é uma função que chama a si mesma várias vezes até que uma condição seja atendida. As funções recursivas são geralmente usadas para resolver cálculos matemáticos complexos ou para lidar com estruturas profundamente aninhadas, por exemplo, para imprimir todos os elementos de um array aninhado.

O seguinte exemplo demonstra como funciona uma função recursiva.

<?php
//Definir função recursiva
function printValues($arr) {
    global $count;
    global $items;
    
    //Verificar se $arr é um array
    if(!is_array($arr)){
        die("ERROR: Input is not an array");
    }
    
    /*
        Percorrer o array, se o value for um array, chamar recursivamente
        A função adiciona os valores encontrados ao array de itens de saída
        e incrementar o contador para cada valor encontrado1
    */
    foreach($arr as $a){
        if(is_array($a)){
            printValues($a);
        } else{
            $items[] = $a;
            $count++;
        }
    }
    
    //Retornar o total de contagem e os valores do array
    return array('total' => $count, 'values' => $items);
}
 
//Definir array aninhado
$species = array(
    "aves" => array(
        "Águia",
        "Papagaio",
        "Cisne"
    ),
    "mammals" => array(
        "Humano"
        "gato" => array(
            "Leão",
            "Tigre",
            "Jaguar"
        ),
        "Elefante",
        "Macaco"
    ),
    "reptiles" => array(
        "snake" => array(
            "Cobra" => array(
                "Cobra real",
                "Cobra egípcia"
            ),
            "Viper",
            "Anaconda"
        ),
        "Crocodile",
        "Dinosaur" => array(
            "T-rex",
            "Alamosaurus"
        )
    )
);
 
//Calcular e imprimir os valores de arrays aninhados
$result = printValues($species);
echo $result['total'] . ' value(s) found: ';
echo implode(', ', $result['values']);
?>
Teste e veja‹/›

Atenção:Cuidado ao criar funções recursivas, pois se o código for escrito incorretamente, pode levar a um loop infinito de chamadas de função.