⊗ppSpFnCb 11 of 83 menu

Funciones callback en PHP

Una función callback es una función que se pasa como parámetro a otra función.

Veamos un ejemplo. Supongamos que tenemos una función que acepta un número como primer parámetro, y un callback como segundo parámetro:

<?php function func($num, $calb) { } ?>

Hagamos que dentro de la función nuestro callback se ejecute para el número pasado:

<?php function func($num, $calb) { echo $calb($num); } ?>

Ahora veamos qué opciones existen para pasar un callback a nuestra función.

Opción 1

Nuestro callback puede ser una función ordinaria:

<?php function calb($num) { return $num ** 2; } ?>

En este caso, como callback pasaremos el nombre de nuestra función:

<?php func(3, 'calb'); ?>

Dentro de la función func nuestro callback se llamará por su nombre.

Opción 2

Nuestro callback puede ser una función anónima, almacenada en una variable:

<?php $calb = function($num) { return $num ** 2; }; ?>

En este caso, pasamos como parámetro la variable con nuestra función:

<?php func(3, $calb); ?>

Opción 3

Se puede pasar la función anónima directamente como parámetro:

<?php func(3, function($num) { return $num ** 2; }); ?>

Opción 4

Se puede acortar el código usando una función flecha:

<?php func(3, fn($num) => $num ** 2); ?>

Problemas prácticos

Se da una función que acepta como parámetro un array y un callback, que se aplicará a cada elemento del array:

<?php function func($arr, $calb) { $res = []; foreach ($arr as $elem) { $res[] = $calb($elem); } return $res; } ?>

Ejecuta esta función, pasando como parámetro un array con números y un callback que eleve al cuadrado el número pasado.

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