Funzione arrayval

Nella libreria standard di PHP non esiste una funzione arrayval, ma è possibile implementare una funzionalità simile autonomamente. Di seguito è presentato un esempio di implementazione che converte qualsiasi valore in un array: se il valore è già un array, viene restituito senza modifiche, per altri tipi viene creato un array con un singolo elemento.

Implementazione della funzione

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

Esempio di utilizzo

Convertiamo una stringa in un array utilizzando la nostra funzione:

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

Risultato dell'esecuzione del codice:

php['abcde']

Esempio di utilizzo

Proviamo a convertire un numero:

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

Risultato dell'esecuzione del codice:

php[123]

Esempio di utilizzo

Verifichiamo il funzionamento con un array:

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

Risultato dell'esecuzione del codice:

php[1, 2, 3]

Soluzioni alternative

In PHP esistono altri modi per convertire in array:

php<?php
  // Utilizzo del cast (array)
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Per gli oggetti il cast funziona in modo diverso
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Vedi anche

  • la funzione is_array,
    che verifica se una variabile è un array
  • la funzione settype,
    che converte il tipo di una variabile