English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como criar suas próprias funções personalizadas no 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.
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.
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.
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.
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。
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‹/›
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‹/›
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.
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.
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.