Funkcja arrayval

W standardowej bibliotece PHP nie ma funkcji arrayval, ale można zaimplementować podobną funkcjonalność samodzielnie. Poniżej przedstawiono przykład implementacji, która konwertuje dowolną wartość na tablicę: jeśli wartość jest już tablicą, jest zwracana bez zmian, dla innych typów tworzona jest tablica z jednym elementem.

Implementacja funkcji

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

Przykład użycia

Skonwertujmy ciąg znaków na tablicę za pomocą naszej funkcji:

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

Wynik wykonania kodu:

php['abcde']

Przykład użycia

Spróbujmy skonwertować liczbę:

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

Wynik wykonania kodu:

php[123]

Przykład użycia

Sprawdźmy działanie z tablicą:

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

Wynik wykonania kodu:

php[1, 2, 3]

Rozwiązania alternatywne

W PHP istnieją inne sposoby konwersji na tablicę:

php<?php
  // Użycie rzutowania typu (array)
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Dla obiektów rzutowanie typu działa inaczej
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Zobacz też

  • funkcję is_array,
    która sprawdza, czy zmienna jest tablicą
  • funkcję settype,
    która konwertuje typ zmiennej