create_function
En esta página
create_function
Crea una función anónima
[!WARNING] Esta funcionalidad está OBSOLETA a partir de PHP 7.2.0 y ha sido ELIMINADA a partir de PHP 8.0.0.
Descripción#
create_function(string $args, string $code): string
```php
`create_function` crea una función anónima, a partir de los argumentos pasados, y devuelve un nombre de función único.
> [!CAUTION]
> Esta función, internamente, utiliza la función `eval` y por lo tanto los requisitos de seguridad son idénticos a los de la función `eval`. Además, el rendimiento no es óptimo y el uso de memoria es significativo.
>
> Una [función anónima](#functions.anonymous) nativa debería ser utilizada en su lugar.
## Parámetros
Generalmente, los argumentos `args` son presentados en forma de una cadena entre comillas simples, y la misma recomendación aplica para `code`. La razón de usar comillas simples es proteger los nombres de variables del reemplazo por su valor. Si se usan comillas dobles, no se olvide de escapar los nombres de variables (i.e. `\$avar`).
`args`
Los argumentos de la función.
`code`
El código de la función.
## Valores devueltos
Devuelve un nombre de función único, en forma de una `string`, o `false` si ocurre un error.
## Ejemplos
Creación de una función anónima con `create_function`
Esta función puede ser utilizada para (por ejemplo) crear una función a partir de información recolectada durante la ejecución:
O, para poder aplicar una función genérica a una lista de argumentos.
Procesamiento genérico por función con `create_function`
El ejemplo anterior mostrará:
Uso de la primera lista de funciones anónimas
parámetros: 2.3445, M_PI
un poco de trigonometría: -1.6291725057799
una hipotenusa: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594
Uso de la segunda lista de funciones anónimas
** "Twas the night" and "Twas brilling and the slithy toves"
** Estas cadenas se parecen! (mirando los tres primeros caracteres)
CRCs: -725381282, 342550513
similaridad (a,b) = 11(45.833333333333%)
Pero el uso más común de las funciones lambda es la función de devolución de llamada, por ejemplo, al utilizar `array_walk` o `usort`
Uso de funciones anónimas como función de devolución de llamada
El ejemplo anterior mostrará:
Array
(
[0] => la maison
[1] => une maison
[2] => cette maison
[3] => une certaine maison
)
un array de cadenas de caracteres ordenadas de la más corta a la más larga
El ejemplo anterior mostrará:
Array
(
[0] => petite
[1] => longue
[2] => une très longue chaîne
[3] => une phrase toute entière
)
ordenadas de la más larga a la más corta
```php
El ejemplo anterior mostrará:
Array
(
[0] => une phrase toute entière
[1] => une très longue chaîne
[2] => longue
[3] => petite
)