понедельник, 3 мая 2021 г.

Приведение переменной к массиву

Сегодня краткий пост о том, как привести переменную какого-то типа к типу массив (array).

Итак, первый вариант, сразу приходящий в голову:

$var = 42;
$varArray = [$var];

Он хорош до тех пор, пока $var не является массивом. В случае с массивом мы получаем двумерный массив. Естественно, это нас не устраивает. Поэтому улучшаем конструкцию:

$var = 42;
if (!is_array($var)) {
    $var = [$var];
}

Но тут многовато строк, можно ли попроще?

Вспоминаем, зачем мы здесь реально собрались, и используем приведение типов:

$var = 42;
$varArray = (array) $var;
print_r($varArray);
// Вывод: Array
// (
//   [0] => 42
// )

$var = [42, 42];
$varArray = (array) $var;
print_r($varArray);
// Вывод: Array
// (
//   [0] => 42
//   [1] => 42
// )

На этом всё.