Fonction arrayval

La bibliothèque standard de PHP ne dispose pas de fonction arrayval, mais il est possible d'implémenter soi-même une fonctionnalité similaire. Ci-dessous se trouve un exemple d'implémentation qui convertit n'importe quelle valeur en tableau : si la valeur est déjà un tableau, elle est retournée sans modification, pour les autres types, un tableau avec un seul élément est créé.

Implémentation de la fonction

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

Exemple d'utilisation

Convertissons une chaîne de caractères en tableau à l'aide de notre fonction :

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

Résultat de l'exécution du code :

php['abcde']

Exemple d'utilisation

Essayons de convertir un nombre :

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

Résultat de l'exécution du code :

php[123]

Exemple d'utilisation

Vérifions le fonctionnement avec un tableau :

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

Résultat de l'exécution du code :

php[1, 2, 3]

Solutions alternatives

Il existe d'autres moyens de conversion en tableau en PHP :

php<?php
  // Utilisation du cast (array)
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Pour les objets, le cast fonctionne différemment
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Voir aussi

  • la fonction is_array,
    qui vérifie si une variable est un tableau
  • la fonction settype,
    qui convertit le type d'une variable