Συνάρτηση arrayval

Στην τυπική βιβλιοθήκη της PHP δεν υπάρχει συνάρτηση arrayval, αλλά μπορείτε να υλοποιήσετε παρόμοια λειτουργικότητα μόνοι σας. Παρακάτω παρουσιάζεται ένα παράδειγμα υλοποίησης που μετατρέπει οποιαδήποτε τιμή σε πίνακα: εάν η τιμή είναι ήδη πίνακας, επιστρέφεται χωρίς αλλαγές, για άλλους τύπους δημιουργείται ένας πίνακας με ένα στοιχείο.

Υλοποίηση της συνάρτησης

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
?>

Παράδειγμα χρήσης

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

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval('abcde');
  print_r($res);
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php['abcde']

Παράδειγμα χρήσης

Ας δοκιμάσουμε να μετατρέψουμε έναν αριθμό:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval(123);
  print_r($res);
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php[123]

Παράδειγμα χρήσης

Ας ελέγξουμε τη λειτουργία με πίνακα:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval([1, 2, 3]);
  print_r($res);
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php[1, 2, 3]

Εναλλακτικές λύσεις

Στη PHP υπάρχουν άλλοι τρόποι μετατροπής σε πίνακα:

php<?php
  // Χρήση (array) για μετατροπή τύπου
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Για αντικείμενα η μετατροπή τύπου λειτουργεί διαφορετικά
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Δείτε επίσης

  • τη συνάρτηση is_array,
    που ελέγχει εάν μια μεταβλητή είναι πίνακας
  • τη συνάρτηση settype,
    που μετατρέπει τον τύπο μιας μεταβλητής