Κόλμπεκ στις ενσωματωμένες συναρτήσεις της PHP

Στη PHP υπάρχει μια σειρά από ενσωματωμένες συναρτήσεις, που δέχονται ως παράμετρο κόλμπεκ. Η γενική αρχή λειτουργίας τους θα μελετηθεί με το παράδειγμα της συνάρτησης array_map. Αυτή η συνάρτηση δέχεται ως πρώτη παράμετρο ένα κόλμπεκ, και ως δεύτερη - έναν πίνακα. Η συνάρτηση εφαρμόζει το κόλμπεκ σε κάθε στοιχείο του πίνακα και επιστρέφει τον τροποποιημένο πίνακα.

Ας δούμε τις επιλογές χρήσης αυτής της συνάρτησης λαμβάνοντας υπόψη τις γνώσεις που αποκτήσαμε προηγουμένως.

Επιλογή 1

Ας εξαγάγουμε από κάθε στοιχείο του πίνακα την τετραγωνική ρίζα χρησιμοποιώντας την ενσωματωμένη συνάρτηση sqrt. Για αυτό, ως κόλμπεκ θα περάσουμε ως παράμετρο τη συμβολοσειρά με το όνομα αυτής της συνάρτησης:

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

Επιλογή 2

Ας υψώσουμε κάθε στοιχείο του πίνακα στο τετράγωνο χρησιμοποιώντας μια συνηθισμένη συνάρτηση που δημιουργήσαμε εμείς. Για αυτό, ως κόλμπεκ θα περάσουμε ως παράμετρο τη συμβολοσειρά με το όνομα αυτής της συνάρτησης:

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

  $res = array_map('func', $arr);
  var_dump($res);
?>

Επιλογή 3

Ας μετατρέψουμε τη συνάρτησή μας σε ανώνυμη, που είναι αποθηκευμένη σε μια μεταβλητή:

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

  $res = array_map($func, $arr);
  var_dump($res);
?>

Επιλογή 4

Ας περάσουμε την ανώνυμη συνάρτηση ως παράμετρο:

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

Επιλογή 5

Ας χρησιμοποιήσουμε συνάρτηση βέλους:

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

Επιλογή 6

Ας υποθέσουμε τώρα ότι η δύναμη, στην οποία πρέπει να υψωθεί ο αριθμός, ορίζεται από μια εξωτερική μεταβλητή του κόλμπεκ. Ας χρησιμοποιήσουμε αυτή τη μεταβλητή, παίρνοντας πρόσβαση σε αυτή μέσω του use:

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

Πρακτικές Ασκήσεις

Задание 1

Δίνεται ένας πίνακας με συμβολοσειρές. Μετατρέψτε το κείμενο κάθε στοιχείου του πίνακα σε κεφαλαία γράμματα.

Задание 2

Δίνεται ένας πίνακας με συμβολοσειρές. Αντιστρέψτε το κείμενο κάθε στοιχείου του πίνακα έτσι ώστε οι χαρακτήρες να πηγαίνουν με αντίστροφη σειρά.