⊗ppSpFnIFC 12 of 83 menu

Povratni pozivi (callback) u ugrađenim funkcijama u PHP-u

PHP ima niz ugrađenih funkcija koje kao parametar prihvataju povratne pozive (callback). Opšti princip rada sa njima ćemo izučiti na primeru funkcije array_map. Ova funkcija kao prvi parametar prihvata povratni poziv (callback), a kao drugi - niz. Funkcija primenjuje povratni poziv na svaki element niza i vraća izmenjeni niz.

Hajde da pogledamo varijante korišćenja ove funkcije u skladu sa znanjima koja smo prethodno stekli.

Varijanta 1

Izdvojimo iz svakog elementa niza kvadratni koren pomoću ugrađene funkcije sqrt. Za ovo ćemo kao povratni poziv (callback) proslediti kao parametar string sa imenom ove funkcije:

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

Varijanta 2

Podignimo svaki element niza na kvadrat pomoću naše kreirane obične funkcije. Za ovo ćemo kao povratni poziv (callback) proslediti kao parametar string sa imenom te funkcije:

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

Varijanta 3

Prepišimo našu funkciju u anonimnu, zapisanu u promenljivoj:

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

Varijanta 4

Prosledimo anonimnu funkciju kao parametar:

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

Varijanta 5

Iskoristimo streličastu funkciju:

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

Varijanta 6

Neka sada stepen, na koji treba podići broj, bude zadata spoljnom promenljivom povratnog poziva (callback). Iskoristimo ovu promenljivu, dobijajući pristup njoj preko use:

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

Varijanta 7

Prepišimo prethodni kod preko streličaste funkcije. Sada će promenljiva $pow biti dostupna automatski:

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

Praktični zadaci

Dat je niz sa stringovima. Prevedite tekst svakog elementa niza u velika slova.

Dat je niz sa stringovima. Obrnite tekst svakog elementa niza tako da karakteri idu obrnutim redosledom.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij