⊗ppSpFnIFC 12 of 83 menu

Sisäänrakennetut funktiot ja callbackit PHP:ssä

PHP:ssä on useita sisäänrakennettuja funktioita, jotka ottavat parametrinaan callback-funktioita. Opimme yleisen periaatteen niiden käsittelystä esimerkkinä funktio array_map. Tämä funktio ottaa ensimmäisenä parametrina callback-funktion ja toisena - taulukon. Funktio soveltaa callback-funktiota jokaiseen taulukon elementtiin ja palauttaa muutetun taulukon.

Katsotaan vaihtoehtoja tämän funktion käyttöön ottaen huomioon aiemmat saamamme tiedot.

Vaihtoehto 1

Poimitaan jokaisesta taulukon elementistä neliöjuuri sisäänrakennetun funktion sqrt avulla. Tätä varten parametrina callback-funktiona välitetään merkkijono, jossa on kyseisen funktion nimi:

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

Vaihtoehto 2

Korotetaan jokainen taulukon elementti toiseen potenssiin luomamme tavallisen funktion avulla. Tätä varten parametrina callback-funktiona välitetään merkkijono, jossa on kyseisen funktion nimi:

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

Vaihtoehto 3

Muutetaan funktiomme anonyymiksi funktioksi, joka on tallennettu muuttujaan:

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

Vaihtoehto 4

Välitetään anonyymi funktio parametrina:

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

Vaihtoehto 5

Käytetään nuolifunktiota:

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

Vaihtoehto 6

Olkoon nyt potenssi, johon luku tulee korottaa, määritelty callback-funktion ulkoisessa muuttujassa. Hyödynnetään tätä muuttujaa saamalla siihen pääsy use-käskyn kautta:

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

Vaihtoehto 7

Kirjoitetaan edellinen koodi uudelleen nuolifunktiona. Nyt muuttuja $pow tulee automaattisesti saataville:

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

Käytännön tehtävät

Annettu taulukko merkkijonoilla. Käännä kunkin elementin teksti suuraakkosiin.

Annettu taulukko merkkijonoilla. Käännä kunkin elementin teksti ympäri niin, että merkit menevät käänteisessä järjestyksessä.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää