Функция 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,
    которая преобразует тип переменной