⊗ppSpFnIFC 12 of 83 menu

Callbacks em funções embutidas no PHP

O PHP possui uma série de funções embutidas que aceitam callbacks como parâmetro. Vamos aprender o princípio geral de trabalho com elas usando a função array_map como exemplo. Esta função aceita um callback como primeiro parâmetro e um array como segundo. A função aplica o callback a cada elemento do array e retorna o array modificado.

Vamos dar uma olhada nas opções de uso desta função, considerando o conhecimento que adquirimos anteriormente.

Opção 1

Vamos extrair a raiz quadrada de cada elemento do array usando a função embutida sqrt. Para isso, passaremos uma string com o nome desta função como parâmetro de callback:

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

Opção 2

Vamos elevar cada elemento do array ao quadrado usando uma função comum que criamos. Para isso, passaremos uma string com o nome desta função como parâmetro de callback:

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

Opção 3

Vamos converter nossa função para anônima, atribuindo-a a uma variável:

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

Opção 4

Vamos passar a função anônima diretamente como parâmetro:

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

Opção 5

Vamos usar uma arrow function:

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

Opção 6

Suponha que a potência à qual o número deve ser elevado seja definida por uma variável externa ao callback. Vamos usar esta variável, obtendo acesso a ela através de 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ção 7

Vamos reescrever o código anterior usando uma arrow function. Agora a variável $pow estará automaticamente disponível:

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

Tarefas práticas

Dado um array de strings. Converta o texto de cada elemento do array para maiúsculas.

Dado um array de strings. Inverta o texto de cada elemento do array para que os caracteres fiquem em ordem reversa.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar