⊗ppSpFnIFC 12 of 83 menu

Callback nelle funzioni integrate in PHP

In PHP esiste una serie di funzioni integrate che accettano callback come parametro. Studieremo il principio generale di funzionamento usando come esempio la funzione array_map. Questa funzione accetta come primo parametro un callback, e come secondo - un array. La funzione applica il callback a ogni elemento dell'array e restituisce l'array modificato.

Diamo un'occhiata alle opzioni di utilizzo di questa funzione tenendo conto delle conoscenze acquisite in precedenza.

Opzione 1

Estraiamo la radice quadrata da ogni elemento dell'array usando la funzione integrata sqrt. Per fare questo, passeremo come parametro callback una stringa con il nome di questa funzione:

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

Opzione 2

Eleviamo al quadrato ogni elemento dell'array usando una funzione normale creata da noi. Per fare questo, passeremo come parametro callback una stringa con il nome di questa funzione:

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

Opzione 3

Convertiamo la nostra funzione in una funzione anonima, assegnata a una variabile:

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

Opzione 4

Passiamo la funzione anonima direttamente come parametro:

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

Opzione 5

Usiamo una funzione arrow:

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

Opzione 6

Supponiamo ora che l'esponente, a cui deve essere elevato il numero, sia definito da una variabile esterna al callback. Usiamo questa variabile, accedendovi tramite use:

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

Opzione 7

Riscriviamo il codice precedente usando una funzione arrow. Ora la variabile $pow sarà disponibile automaticamente:

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

Compiti pratici

Dato un array di stringhe. Converti il testo di ogni elemento dell'array in maiuscolo.

Dato un array di stringhe. Inverti il testo di ogni elemento dell'array in modo che i caratteri siano in ordine inverso.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta