⊗ppSpFnIFC 12 of 83 menu

Callbacks en funciones integradas en PHP

En PHP hay una serie de funciones integradas que aceptan callbacks como parámetro. Estudiaremos el principio general de trabajo con ellas usando como ejemplo la función array_map. Esta función acepta como primer parámetro un callback, y como segundo - un array. La función aplica el callback a cada elemento del array y devuelve el array modificado.

Veamos las opciones de uso de esta función teniendo en cuenta los conocimientos adquiridos previamente.

Opción 1

Extraigamos la raíz cuadrada de cada elemento del array usando la función integrada sqrt. Para ello, pasaremos como parámetro callback una cadena con el nombre de esta función:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map('sqrt', $arr); var_dump($res); ?>

Opción 2

Elevemos cada elemento del array al cuadrado usando una función ordinaria creada por nosotros. Para ello, pasaremos como parámetro callback una cadena con el nombre de esta función:

<?php $arr = [1, 2, 3, 4, 5]; function func($num) { return $num ** 2; } $res = array_map('func', $arr); var_dump($res); ?>

Opción 3

Transformemos nuestra función en una anónima, almacenada en una variable:

<?php $arr = [1, 2, 3, 4, 5]; $func = function ($num) { return $num ** 2; }; $res = array_map($func, $arr); var_dump($res); ?>

Opción 4

Pasemos la función anónima como parámetro:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(function ($num) { return $num ** 2; }, $arr); var_dump($res); ?>

Opción 5

Usemos una función flecha:

<?php $arr = [1, 2, 3, 4, 5]; $res = array_map(fn ($num) => $num ** 2, $arr); var_dump($res); ?>

Opción 6

Supongamos ahora que la potencia a la que necesita elevarse el número, se define por una variable externa al callback. Usemos esta variable, obteniendo acceso a ella a través de use:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(function ($num) use ($pow) { return $num ** $pow; }, $arr); var_dump($res); ?>

Opción 7

Reescribamos el código anterior usando una función flecha. Ahora la variable $pow estará disponible automáticamente:

<?php $arr = [1, 2, 3, 4, 5]; $pow = 3; $res = array_map(fn ($num) => $num ** $pow, $arr); var_dump($res); ?>

Tareas prácticas

Dado un array con cadenas de texto. Convierta el texto de cada elemento del array a mayúsculas.

Dado un array con cadenas de texto. Invierta el texto de cada elemento del array de modo que los caracteres vayan en orden inverso.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar