Funkcia arrayval

V štandardnej knižnici PHP neexistuje funkcia arrayval, ale je možné implementovať podobnú funkcionalitu samostatne. Nižšie je uvedený príklad implementácie, ktorá konvertuje akúkoľvek hodnotu na pole: ak je hodnota už pole, vráti sa bez zmien, pre ostatné typy sa vytvorí pole s jedným prvkom.

Implementácia funkcie

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

Príklad použitia

Premeňme reťazec na pole pomocou našej funkcie:

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

Výsledok vykonania kódu:

php['abcde']

Príklad použitia

Skúsme previesť číslo:

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

Výsledok vykonania kódu:

php[123]

Príklad použitia

Skontrolujme činnosť s poľom:

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

Výsledok vykonania kódu:

php[1, 2, 3]

Alternatívne riešenia

V PHP existujú iné spôsoby prevodu na pole:

php<?php
  // Použitie (array) pretypovania
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Pre objekty pretypovanie funguje inak
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Pozri tiež

  • funkciu is_array,
    ktorá kontroluje, či je premenná pole
  • funkciu settype,
    ktorá konvertuje typ premennej