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 $valaquí, $ 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.
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