Funções em PHP

Nosso objetivo aqui é mergulhar mais fundo nas funções do PHP com exemplos, explorando o que são, como são definidas e como são chamadas.

Funções PHP são blocos de código que podem ser repetidos dentro do seu código.

Uma função executa uma tarefa específica e recebe parâmetros e retorna valores.

As funções ajudam a organizar seu código, facilitam a leitura e a manutenção e reduzem a quantidade de código que você precisa escrever.

Existem mais de 1.000 funções pré-construídas em PHP e você também pode escrever suas próprias funções personalizadas.



Funções PHP integradas

Existem mais de 1000 funções PHP integradas que podem ser acessadas diretamente em um script para executar uma tarefa específica.

As funções internas do PHP são funções predefinidas.

Uma função interna executa tarefas básicas, como modificar strings , trabalhar com arrays e realizar cálculos matemáticos.

O uso dessas funções em seu código tornará seu código mais eficiente, legível e fácil de manter.

As funções integradas são fáceis de usar. Tudo o que você precisa fazer é chamar a função pelo nome e passar quaisquer parâmetros.


Funções definidas pelo usuário em PHP

Além das funções internas do PHP, os desenvolvedores também podem definir suas próprias funções. Essas funções são chamadas de funções definidas pelo usuário, que são usadas para limitar um bloco de código para executar uma tarefa específica usando um conjunto de variáveis .

Uma função é um conjunto de instruções que formam a estrutura de um programa e podem ser usadas repetidamente ao longo do programa.

Quando uma página é carregada, uma função não será executada automaticamente ao ser carregada.

Ao chamar a função, a função é executada.

A seguir estão alguns passos simples que você pode seguir para criar uma função definida pelo usuário em PHP:

1 – A primeira coisa que você precisa fazer é usar a palavra-chave function, seguida do nome que deseja dar à função. Use um nome descritivo que reflita a finalidade da função.

2 – Depois disso, precisamos incluir os parâmetros que a função aceitará entre parênteses na declaração da função.

Parâmetros são variáveis ​​que são passadas para a função quando ela é chamada. Estes podem ser usados ​​para fornecer entrada para funções.

3 – No bloco funcional, você deve escrever o código que deseja executar quando a função for invocada, para que o código possa ser executado. Você pode inserir qualquer código PHP válido aqui, incluindo outras chamadas de função, loops , condicionais , bem como qualquer outro código PHP válido.

4 – Para finalizar, especifique o valor de retorno que a função deve retornar. Quanto ao valor, pode ser de qualquer tipo de dado , seja string, inteiro, array, etc.

Sintaxe

function functionName()
{
//The code that needs to be executed.
}
Lembre-se: os nomes das funções devem começar com uma letra ou sublinhado. Não há distinção entre maiúsculas e minúsculas quando se trata de nomes de funções.

O exemplo abaixo mostra um exemplo de como criar uma função chamada “ greeting() “. Há uma chave ( { ) no início do código que indica o início da função e uma chave ( } ) no final que indica o final do código da função.

Esta função exibirá a mensagem “Bom dia”. Para invocar uma função, escreva o nome da função usando colchetes () :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function greeting() {
echo "Good Morning!";
}
greeting(); // invoking the function
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Dica: certifique-se de que sua função seja nomeada de forma que deixe claro o que ela deve fazer.

Abaixo está outro exemplo de saudação com um nome criando uma função:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function userGreeting() {
$name = "Ben";
echo "Good Morning!, " . $name ;
}
userGreeting(); // invoking the function
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Funções Php


Argumentos da Função PHP

As funções PHP podem receber informações por meio de argumentos. Argumentos são como variáveis. Após o nome da função, os argumentos são colocados entre parênteses.
Nas funções PHP, você pode ter quantos argumentos quiser, separados por vírgulas.
No exemplo a seguir, há um argumento ( $firstname ) para a função. A função familyMembers() recebe como entrada um nome (por exemplo, “Brock”). Dentro da função, o nome é usado para gerar vários nomes diferentes, mas um sobrenome igual, que usamos na saída:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function familyMembers($firstname) {
echo "$firstname Lesnar. <br>";
}
familyMembers("Brock");
familyMembers("Rena Marlette");
familyMembers("Mya Lynn");
familyMembers("Duke");
familyMembers("Luke");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Abaixo está outro exemplo de criação de uma função usando um parâmetro:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function pets($name) {
echo "$name <br>";
}
pets("Dogs");
pets("Cat");
pets("Rabbit");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Aqui está um exemplo abaixo onde uma função possui dois parâmetros ( $firstname e $date_of_birth ):

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function familyMembers($firstname, $date_of_birth) {
echo "$firstname is born on $date_of_birth <br>";
}
familyMembers("Brock", "1977");
familyMembers("Rena Marlette", "1967");
familyMembers("Turk", "2009");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Aqui está outro exemplo de criação de função pets() com dois parâmetros: primeiro como $name e segundo como $dayStay :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function pets($name, $dayStay) {
echo "$name alive till $dayStay years.<br>";
}
pets("Dogs", "11");
pets("Cat", "10 to 15");
pets("Rabbit", "9");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PHP de tipo livre

Observe, no exemplo acima, que não precisamos dizer ao PHP que tipo de dado era a variável.
As variáveis ​​são associadas automaticamente a tipos de dados com base em seus valores.
Como os tipos de dados não são definidos em um sentido muito estrito, você pode adicionar uma string a um inteiro sem que isso cause problemas.
PHP 7 introduziu declarações de tipo. Uma declaração estrita nos permite especificar o tipo de dados esperado ao declarar uma função e, se o tipo for incompatível, ocorrerá um “Erro Fatal”.
Como exemplo, vamos enviar um número e uma string sem usar strict:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function sum(int $x, int $y) {
return $x + $y;
}
echo sum(10, "4"); // since strict is NOT enabled "4" is changed to int(4), and it will return 14
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Agora, vamos criar mais uma função para calcular a raiz quadrada sem usar strict:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function sqRoot(int $x) {
return $x *$x;
}
echo sqRoot("3"); // since strict is NOT enabled "3" is changed to int(3), and it will return 9
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A declaração de tipos estritos pode ser realizada declarando (strict_types=1);.

Os arquivos PHP devem ter isso na primeira linha.

Agora, usando a declaração estrita, enviamos um número e uma string para a função sum() no exemplo abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php declare(strict_types = 1); // strict requirement
function sum(int $x, int $y){
return $x + $y;
}
echo sum(10, "4"); // since strict is enabled and "4" is not an integer, an error will be thrown
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Importante: No PHP 8, strict_types está obsoleto.

A seguir está outro exemplo de criação da função sqRoot() usando declaração estrita:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php declare(strict_types = 1); // strict requirement
function sqRoot(int $x) {
return $x *$x;
}
echo sqRoot("3"); // since strict is enabled and "3" is not an integer, an error will be thrown
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembre-se : No PHP 8, strict_types está obsoleto.

Declarações estritas forçam as coisas a serem usadas como pretendido.


Valor de argumento padrão do PHP

Os valores de argumento padrão são atribuídos a parâmetros de função quando não são passados ​​explicitamente.

Ele permite que as funções sejam chamadas com menos argumentos do que requerem e fornece um valor padrão se os argumentos estiverem ausentes.

No exemplo a seguir, veremos como usar um parâmetro padrão.

O valor padrão é considerado como um argumento se chamarmos a função setAge() sem nenhum argumento:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php declare(strict_types=1); // strict requirement
function setAge(int $minAge = 12) {
echo "The age is : $minAge";
}
setAge(16);
setAge(); // will use the default value of 50
setAge(20);
setAge(35);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Nota : strict_types está obsoleto no PHP 8 e superior.

Aqui está um exemplo, onde criamos uma função chamada setGender() com o valor padrão de $gender = “O” (outro):

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function setGender(int $gender = "O") {
echo "The gender is : $gender ";
}
setGender("M");
setGender(); // will use the default value of O
setGender("F");
setGender( "M");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Em outro exemplo, estamos prestes a retornar o valor da raiz quadrada:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function sqRoot(int $a) {
$b = $a * $a;
return $b;
}
echo "Square root of 4 = " . sqRoot(4) . "";
echo "Square root of 25 = " . sqRoot(25) . "";
echo "Square root of 64 = " . sqRoot(64);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Declarações de tipo de retorno em PHP

A instrução return no PHP 7 também suporta declarações de tipo.

Se você deseja declarar um tipo de retorno para uma função, precisará adicionar dois pontos ( : ) e o tipo antes do colchete de abertura ( { ) ao declarar a função.

Como exemplo, vamos especificar o tipo de retorno para uma função da seguinte maneira:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function sum(float $x, float $y) : float {
return $x + $y;
}
echo sum(3.4, 6.6);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Retornando um valor int da função sqRoot() , no exemplo abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php declare(strict_types=1); // strict requirement
function sqRoot(int $x) : int{
return $x * $x;
}
echo sqRoot(3);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Os tipos de retorno podem ser diferentes dos tipos de argumento, mas certifique-se de que sejam do tipo correto, pois retornamos os valores float para int no exemplo abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php declare(strict_types=1); // strict requirement
function sum(float $x, float $y) : int{
(int) return $x + $y;
}
echo sum(3.4, 6.6);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Importante: No PHP 8, strict_types = 1 e as declarações de tipo de retorno são obsoletas.
Aqui, especificamos o tipo de retorno float para os valores int:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php declare(strict_types=1); // strict requirement
function sqRoot(int $x) : float{
return (float) $x * $x;
}
echo sqRoot(3);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Importante : No PHP 8, strict_types = 1 e as declarações de tipo de retorno são obsoletas.

Passando argumentos por referência

Uma função PHP usa argumentos por valor. Isso significa que uma cópia do argumento é usada na função. Além disso, a variável que foi passada para a função não pode ser alterada se o valor foi passado por valor.

Ao passar um argumento de função por referência, as alterações no argumento também causarão uma alteração na variável que foi passada para a função.

Para converter o argumento da função PHP em uma referência, precisamos usar o operador &.

No exemplo abaixo, atualizamos o valor usando o argumento de passagem por referência:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function addTwo(&$a) {
$a += 2;
}
$value = 7;
addTwo($value);
echo $value;
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Aqui, estamos atualizando o valor de uma string usando passagem por referência:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function strPrinting( &$str ) {
$str = "String Inside the function <br>";
print( $str );
}
$str = "String outside the function <br>";
strPrinting( $str );
print( $str );
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

No exemplo acima, definimos uma função chamada strPrinting e a chamamos com o argumento $str .

A função strPrinting recebe um único parâmetro &$str, que é uma referência a uma variável fora da função.

O símbolo & antes de $str indica que é um parâmetro de referência. Isso significa que qualquer alteração feita nesse parâmetro dentro da função também afetará a variável fora da função.

Dentro da função, o valor de $str é alterado para “String Inside the function <br>” e depois impresso na tela usando a função print.

Então, a função é chamada com um argumento $str, que é inicializado como “String fora da função <br>”. Isso significa que o valor de $str dentro da função também será “String fora da função <br>”, mas será alterado para “String dentro da função <br>” quando a função strPrinting for chamada.

Por fim, após a chamada da função, é impresso novamente o valor de $str, que será “String Inside the function <br>” pois foi alterado dentro da função.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone