"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > En PHP, ¿cómo usar variables calculadas externamente en una función de devolución de llamada?

En PHP, ¿cómo usar variables calculadas externamente en una función de devolución de llamada?

Publicado el 2025-04-16
Navegar:607

How Can I Use Variables Calculated Outside Callback Functions in PHP?

usando variables calculadas fuera de las funciones de devolución de llamada

en PHP, es posible calcular variables fuera de las funciones de devolución de llamada y usarlas dentro de esas funciones. Consideremos el siguiente escenario:

tiene una matriz $ arr y desea usar Array_Filter para crear una nueva matriz que contenga solo valores menos que el promedio de los elementos en $ arr.

para lograr esto utilizando una función de devolución de llamada, puede encontrar el desafío de calcular el promedio fuera de la función y usarlo dentro. Sin embargo, la palabra clave de uso proporciona una solución.

usando la palabra clave USE

La palabra clave USE permite a las funciones anónimas heredar las variables del alcance principal. En este caso, puede definir la función de devolución de llamada de la siguiente manera:

$avg = array_sum($arr) / count($arr);
$callback = function($val) use ($avg) { return $val  

aquí, $ AVG se hereda del alcance principal usando la palabra clave de uso. La función de devolución de llamada ahora puede usar $ AVG para filtrar elementos.

return array_filter($arr, $callback);

usando funciones de flecha (php 7.4 o posterior)

php 7.4 presenta las funciones de flecha, que son más concisionales de las concisiones a anónimas a anónimas de anónimo. Las funciones de flecha capturan automáticamente variables externas, eliminando la necesidad de usar.

puede definir la función de devolución de llamada de la siguiente manera:

$ callback = fn ($ val) => $ val $callback = fn($val) => $val simplificada filtración de matrices con las funciones de Arrow

Las funciones son muy concisas, puede incrustarlos directamente dentro de la llamada de array_filter: return_filter ($ arr, fn ($ val) => $ val

en sumary, la palabra clave o las funciones de flecha Operaciones.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3