⊗ppSpFnIFC 12 of 83 menu

Funcțiile callback în funcțiile încorporate în PHP

În PHP există o serie de funcții încorporate, care acceptă funcții callback ca parametru. Vom studia principiul general de lucru cu ele folosind ca exemplu funcția array_map. Această funcție acceptă ca prim parametru un callback, iar ca al doilea - un array. Funcția aplică callback-ul fiecărui element al array-ului și returnează array-ul modificat.

Să ne uităm la opțiunile de utilizare a acestei funcții ținând cont de cunoștințele noastre anterioare.

Opțiunea 1

Să extragem rădăcina pătrată din fiecare element al array-ului folosind funcția încorporată sqrt. Pentru aceasta, ca parametru callback vom transmite un șir cu numele acestei funcții:

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

Opțiunea 2

Să ridicăm fiecare element al array-ului la pătrat folosind o funcție obișnuită creată de noi. Pentru aceasta, ca parametru callback vom transmite un șir cu numele acestei funcții:

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

Opțiunea 3

Să modificăm funcția noastră într-una anonimă, scrisă într-o variabilă:

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

Opțiunea 4

Să transmitem funcția anonimă ca parametru:

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

Opțiunea 5

Să folosim o funcție arrow:

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

Opțiunea 6

Să presupunem că puterea la care trebuie să ridicăm numărul, este dată de o variabilă externă callback-ului. Să folosim această variabilă, obținând acces la ea prin use:

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

Opțiunea 7

Să rescriem codul anterior folosind o funcție arrow. Acum variabila $pow va fi disponibilă automat:

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

Probleme practice

Este dat un array cu șiruri. Traduceți textul fiecărui element al array-ului în majuscule.

Este dat un array cu șiruri. Inversați textul fiecărui element al array-ului astfel încât caracterele să meargă în ordine inversă.

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