1 <?php
2 function nomeDaFuncao() { }
return
não for usada). 1 <?php
2 function printList($string, $count = 5)
3
4 function newTo5(&$number = 2)
5
6 $a = func_get_args();
7
8 int func_num_args(void)
9
10 mixed func_get_arg ( int $arg_num )
http://php.net/manual/pt_BR/language.references.return.php
1 <?php
2 function &nomeDaFuncao() { }
return
vazia para forçar o retorno de um valor NULLhttp://php.net/manual/pt_BR/functions.anonymous.php
Permitem a criação de funções sem nome específico. Elas são úteis principalmente como valores de parâmetros callback, mas elas tem muitos outros usos.
As closures também podem ser usadas como valores de variáveis; o PHP converte automaticamente essas expressões em instâncias da classe interna Closure
.
1 <?php
2 $cumprimentar = function($nome)
3 {
4 printf("Olá %s\r\n", $nome);
5 };
6
7 $cumprimentar('Mundo');
8 $cumprimentar('PHP');
9 ?>
É possível usar as funções func_num_args(), func_get_arg() e func_get_args() de dentro de uma closure.
A classe final predefinida Closure
foi introduzida no PHP 5.3.0. Ela é usada para a implementação interna das funções anônimas.
A classe tem um construtor que proíbe a criação manual do objeto (disparando um E_RECOVERABLE_ERROR
) e o método __invoke
via chamada mágica.
Também podem herdar variáveis do escopo pai.
1 <?php
2 $callback =
3 function ($quantidade, $produto) use ($imposto, &$total)
4 {
5 $precoPorItem = constant(__CLASS__ . "::PRECO_" .
6 strtoupper($produto));
7 $total += ($precoPorItem * $quantidade) * ($imposto + 1.0);
8 };
9
10 array_walk($this->produtos, $callback);