Função(function) é um bloco de instruções(códigos) que pode ser usado repetidamente em um programa. Usamos funções quando precisamos executar a mesma tarefa várias vezes em um script sem duplicar o código. Mais tarde, se você quiser ter uma mensagem diferente, poderá alterar a função em um único luga em vez de em vários lugares.
O verdadeiro poder do PHP vem de suas funções. O PHP possui mais de 1000 funções integradas e, além disso, você pode criar suas próprias funções personalizadas. Podemos chamar essas funções para realizarem uma tarefa específica.
Já vimos algumas, como date(), var_dump(), is_string()…. Essas funções próprias do php. Mas podemos criar as nossas.
Em resumo: Uma função é um pedaço de código que faz algum processamento e retorna um valor.
Sintaxe de uma função em php:
Um nome de função deve começar com uma letra ou um sublinhado. Os nomes das funções NÃO diferenciam maiúsculas de minúsculas.
function nome_funcao() {
código a ser executado;
}
Exemplos de Funções em PHP
<?php
function escrevaMensagem() {
echo "Oi, Sou uma função<br>";
echo "posso ser chamada quantas vezes quiser";
echo "---";
}
escrevaMensagem();
echo "<br>";
escrevaMensagem();
echo "<br>" ;
escrevaMensagem();
?>
Acima, criei a função e a chamei 3 vezes. Esse é o resultado:
Oi, Sou uma função
posso ser chamada quantas vezes quiser
—
Oi, Sou uma função
posso ser chamada quantas vezes quiser
—
Oi, Sou uma função
posso ser chamada quantas vezes quiser
—
PARÂMETROS E ARGUMENTOS NA FUNÇÃO
Funções também aceitam parâmetros. Parâmetros são valores, geralmente dentro de variáveis, que passamos dentro dos parênteses (…)
Abaixo, $nome é um parâmetro e “Maria”, “Joao”, “Silva” são argumentos.
<?php
function quemSou($nome) {
echo "Oi, Sou $nome";
}
quemSou("Maria");
echo "<br>";
quemSou("Joao");
echo "<br>" ;
quemSou("Silva");
?>
Acima, passamos nomes como argumentos para as funções. O resultado será:
Oi, Sou Maria
Oi, Sou Joao
Oi, Sou Silva
Podemos ter mais de um parâmetro
<?php
function quemSou($nome, $idade, $peso, $sexo) {
echo "Oi, Sou $nome, tenho $idade anos, peso $peso quilos e do sexo $sexo "
}
quemSou("Maria", 34, 67, "feminino");
echo "<br>";
quemSou("Joao", 55, 80, "masculino");
?>
Resultado:
Oi, Sou Maria, tenho 34 anos, peso 67 quilos e do sexo feminino
Oi, Sou Joao, tenho 55 anos, peso 80 quilos e do sexo masculino
Vejamos outro exemplo onde somamos valores dentro de uma função:
<?php
function soma($valor1, $valor2) {
$soma = $valor1 + $valor2;
echo "$valor1 + $valor2 = $soma <br> ";
}
soma(4,6);
soma(34, 88);
soma(4, 9);
soma(3,8);
?>
Resultado:
4 + 6 = 10
34 + 88 = 122
4 + 9 = 13
3 + 8 = 11
PASSANDO ARGUMENTOS POR REFERÊNCIA
Ao colocarmos um & passamos argumentos por referência; isso significa que a variável é manipulada pela função.
Quaisquer alterações feitas em um argumento nesses casos alterarão o valor da variável original.
Podemos passar um argumento por referência adicionando um “E” comercial(&) ao nome da variável na chamada(arguimento) da função ou na definição(parâmetro) da função.
<?php
function addDez(&$num) {
$num += 10;
}
$num_inicial = 10;
echo "valor inicial é $num_inicial <br>";
addDez($num_inicial);
echo "valor inicial é $num_inicial <br>";
addDez($num_inicial);
echo "valor inicial é $num_inicial <br>";
addDez($num_inicial);
echo "valor inicial é $num_inicial <br>";
addDez($num_inicial);
echo "valor inicial é $num_inicial <br>";
?>
O resultado será:
valor inicial é 10
valor inicial é 20
valor inicial é 30
valor inicial é 40
valor inicial é 50
Retornando um Valor
Uma função pode retornar um valor. Para retornar um valor de uma função, você usa a instrução return. Exemplo
function quemSou($nome) {
.....
return algum_valor
}
return termina imediatamente a execução da função atual e retorna o valor.
algum_valor pode ser qualquer valor 🙂 como uma string ou integer, uma variável ou expressão.
Vamos ver na prática:
<?php
function quemSou($nome, $idade, $peso, $sexo) {
return "Oi, Sou $nome, tenho $idade anos, peso $peso quilos e do sexo $sexo"
}
$quemsou = quemSou("Maria", 34, 67, "feminino");
echo $quemsou;
?>
No caso acima, a função retorna(return) uma string que é passada para $quemsou. Pode comprovar isso usando
echo var_dump($quemsou);
ou
echo var_dump(quemSou(“Maria”, 34, 67, “feminino”));
Definindo valor padrão para parâmetros
<?php
function multiplica($num) {
return print "Valor retornado é " . $num *= 2;
}
multiplica();
?>
Se a função acima espera um argumento mas como nenhum foi passado em multiplica(); então teremos esse erro:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function addDez(), 0 passed in /var/www/html/meusite/index.php on line 10 and exactly 1 expected in......
Podemos definir um valor padrão para o caso onde nenhum argumento seja passado, desse modo o valor padrão será retornado para que não gere erro.
Abaixo declaramos que $num = NULL. Com isso mesmo que não passemos um argumento para a função não gerará erro.
<?php
function multiplica($num = NULL) {
return print "Valor retornado é " . $num *= 2;
}
multiplica();
?>
Vejamos outro exemplo
<?php
function dadosPessoais($nome = '', $pais = 'Brasil'){
echo "Sou $nome e nasci em $pais<br>";
}
dadosPessoais('Maria');
dadosPessoais('Joao','Italia');
?>
O resultado será:
Sou Maria e nasci em Brasil
Sou Joao e nasci em Italia
HTML dentro da função
Normalmente, uma função contém apenas código PHP. No entanto, é possível definir uma função que contém código HTML.
<?php function funcaoHTML($nome = NULL) { ?>
<h1>HTML dentro de uma Função</h1>
<?php } funcaoHTML("Maria"); ?>
Isso retornará:
HTML dentro de uma Função
Argumentos Nomeados(named arguments)
Esta função está disponível somente a partir da versão 8.0 do PHP.
Com Argumentos Nomeados, com os nomes dos parâmetros, as posições dos argumentos não precisam seguir a mesma ordem dos parâmetros.
<?php
function dadosPessoais($nome, $sexo, $pais){
echo "Sou $nome, e nasci em $pais<br>";
}
dadosPessoais(sexo:'masculino', nome:'Maria', pais:'Brasil');
?>
Podemos misturar “Argumentos Nomeados” com os “Argumentos com Posições fixadas“, porém os argumentos nomeados têm que estar depois.
A chamada abaixo daria erro:
dadosPessoais(‘masculino’, nome:’Maria’, pais:’Brasil’);
pois ‘masculino’ é posicional mas está antes dos argumentos nomeados.
Conclusão
Uma função é um bloco de código que tem um nome. Ao chamarmos a função por seu nome ela função é invocada e executada uma tarefa específica.
Use funções para criar código reutilizável.
Use a instrução return para retornar um valor de uma função.
Desde o PHP 8.0, a lista de parâmetros pode ter a vírgula (,)
Por padrão, os argumentos são passados ”por valor” no PHP, mas ao colocarmos um “e comercial (&)” tanto no argumento quanto no parâmetro eles serão passados por referência.
Podemos quebrar a lista de argumentos verticalmente para tornar o código mais legível assim:
<?php
.......
multiplica(
'maria',
'12',
'feminino',
'parda'
);
?>
Artigos Relacionados
Temos outros artigos que falam sobre funções:
Comment on “PHP – Aula 017: Funções”