⊗ppSpFnCb 11 of 83 menu

Funcții callback în PHP

Un callback este o funcție care este transmisă ca parametru unei alte funcții.

Să ne uităm la un exemplu. Să presupunem că avem o funcție care primește un număr ca prim parametru, iar al doilea parametru - un callback:

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

Să facem astfel încât în interiorul funcției callback-ul nostru să fie apelat pentru numărul transmis:

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

Să vedem acum ce variante de transmitere a callback-ului în funcția noastră există.

Varianta 1

Callback-ul nostru poate fi o funcție obșnuită:

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

În acest caz, ca callback vom transmite numele funcției noastre:

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

În interiorul funcției func callback-ul nostru va fi apelat după nume.

Varianta 2

Callback-ul nostru poate fi o funcție anonimă, scrisă într-o variabilă:

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

În acest caz, transmitem ca parametru variabila cu funcția noastră:

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

Varianta 3

Puteți transmite funcția anonimă imediat ca parametru:

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

Varianta 4

Puteți scurta codul, utilizând o funcție săgeată:

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

Probleme practice

Este dată o funcție care primește ca parametru un array și un callback, care se va aplica fiecărui element al array-ului:

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

Apelați această funcție, transmitând ca parametru un array cu numere și un callback care ridică numărul transmis la pătrat.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge