
Programação com PHP pode ser que, de vez em quando, Você já teve que fazer uso de funções anônimas. Funções anônimas são funções que são declaradas na próprio fluxo o código que estamos desenvolvendo e que suponho que são funções que vão usar Só naquele lugar, Portanto, não acreditamos que eles separados e a reutilização.
Normalmente, Essas funções são usadas como recepção de retornos de chamada outras funções ou eventos, e o tratamento é codificado neles que tais retorno de chamada o evento Você deve ter. Desta forma, Você pode fazer um desenvolvimento ou programação orientada a eventos, mais típico de outras línguas como JavaScript.
Se você já programou em Javascript, Quando fazer, por exemplo, uma chamada para a função setTimeout, um dos parâmetros que tem é uma retorno de chamada a função que você quer que ele seja executado quando ocorre o evento.
1 | setTimeout( function() { console.log( 'test' ); }, 3000 ); |
O mesmo, em PHP Há momentos quando é apropriado usar retornos de chamada como parâmetros de funções. Em seguida, vemos o possível uso de uma função anônima em PHP. Vamos supor que temos uma função na qual um dos seus parâmetros é um retorno de chamada:
1 | nombre_funcion( $parametro1, $parametro2, $callback = '' ); |
no parâmetro $retorno de chamada, Vamos diretamente a nome da função Eu quero que ele seja executado e que anteriormente temos definido, de qualquer, diretamente um função anônima. Vamos ver as duas formas:
- Chamando um função anteriormente definida:
1 2 3 4 5 | function mi_funcion() { //código de mi_funcion } nombre_función ( $parametro1, $parametro2, 'mi_funcion' ); |
- Através do uso de um função anônima:
1 2 3 4 5 | nombre_funcion( $parametro1, $parametro2, function() { //código de la función anónima } ); |
Como passar parâmetros ou variáveis para funções anônimas
Quando usamos funções anônimas, dentro do código destes, Não temos acesso para o variáveis ou objetos que você definiu anteriormente na o fluxo de código, Então, Se você precisa para se referir a alguns deles, de qualquer Tornamos mais global, também damos acesso a eles, como veremos abaixo:
Suponha que o exemplo anterior com alguns código anterior adicionado:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() { //Desde aquí no tengo acceso a la variable $aux } ); |
De dentro da função anônima Não temos acesso para a variável $AUX previamente definidos. Para utilizar esta variável, Temos que fazê-lo da seguinte maneira:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() use ( $aux ) { //Ahora sí que tenemos acceso a la variable $aux } ); |
Adição de, Após o identificador da função função(), a palavra Use seguido, parênteses, a variável à qual queremos acessar, Nós somos permitindo que que a partir de dentro da função anônima Temos acesso para a variável, Que EUA impedirá que tendo a declarar variáveis globais e instruções de uso subsequente dentro da função.
