Κόλμπεκ στις ενσωματωμένες συναρτήσεις της PHP
Στη PHP υπάρχει μια σειρά από ενσωματωμένες συναρτήσεις,
που δέχονται ως παράμετρο κόλμπεκ.
Η γενική αρχή λειτουργίας τους θα μελετηθεί
με το παράδειγμα της συνάρτησης array_map.
Αυτή η συνάρτηση δέχεται ως πρώτη παράμετρο
ένα κόλμπεκ, και ως δεύτερη - έναν πίνακα. Η συνάρτηση εφαρμόζει
το κόλμπεκ σε κάθε στοιχείο του πίνακα
και επιστρέφει τον τροποποιημένο πίνακα.
Ας δούμε τις επιλογές χρήσης αυτής της συνάρτησης λαμβάνοντας υπόψη τις γνώσεις που αποκτήσαμε προηγουμένως.
Επιλογή 1
Ας εξαγάγουμε από κάθε στοιχείο του πίνακα
την τετραγωνική ρίζα χρησιμοποιώντας την ενσωματωμένη
συνάρτηση
sqrt.
Για αυτό, ως κόλμπεκ θα περάσουμε ως παράμετρο
τη συμβολοσειρά με το όνομα αυτής της συνάρτησης:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
Επιλογή 2
Ας υψώσουμε κάθε στοιχείο του πίνακα στο τετράγωνο χρησιμοποιώντας μια συνηθισμένη συνάρτηση που δημιουργήσαμε εμείς. Για αυτό, ως κόλμπεκ θα περάσουμε ως παράμετρο τη συμβολοσειρά με το όνομα αυτής της συνάρτησης:
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
Επιλογή 3
Ας μετατρέψουμε τη συνάρτησή μας σε ανώνυμη, που είναι αποθηκευμένη σε μια μεταβλητή:
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
Επιλογή 4
Ας περάσουμε την ανώνυμη συνάρτηση ως παράμετρο:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
Επιλογή 5
Ας χρησιμοποιήσουμε συνάρτηση βέλους:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
Επιλογή 6
Ας υποθέσουμε τώρα ότι η δύναμη, στην οποία πρέπει
να υψωθεί ο αριθμός, ορίζεται από μια εξωτερική μεταβλητή
του κόλμπεκ. Ας χρησιμοποιήσουμε αυτή τη μεταβλητή,
παίρνοντας πρόσβαση σε αυτή μέσω του use:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
Επιλογή 7
Ας ξαναγράψουμε τον προηγούμενο κώδικα χρησιμοποιώντας συνάρτηση βέλους.
Τώρα η μεταβλητή $pow
θα είναι διαθέσιμη αυτόματα:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
Πρακτικές Ασκήσεις
Δίνεται ένας πίνακας με συμβολοσειρές. Μετατρέψτε το κείμενο κάθε στοιχείου του πίνακα σε κεφαλαία γράμματα.
Δίνεται ένας πίνακας με συμβολοσειρές. Αντιστρέψτε το κείμενο κάθε στοιχείου του πίνακα έτσι ώστε οι χαρακτήρες να πηγαίνουν με αντίστροφη σειρά.