Funkce arrayval

Ve standardní knihovně PHP neexistuje funkce arrayval, ale podobnou funkcionalitu lze implementovat samostatně. Níže je uveden příklad implementace, která převede jakoukoli hodnotu na pole: pokud je hodnota již pole, vrátí se beze změn, pro ostatní typy se vytvoří pole s jedním prvkem.

Implementace funkce

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

Příklad použití

Převeďme řetězec na pole pomocí naší funkce:

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

Výsledek provedení kódu:

php['abcde']

Příklad použití

Zkusme převést číslo:

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

Výsledek provedení kódu:

php[123]

Příklad použití

Ověřme funkčnost s polem:

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

Výsledek provedení kódu:

php[1, 2, 3]

Alternativní řešení

V PHP existují další způsoby převodu na pole:

php<?php
  // Použití (array) přetypování
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Pro objekty funguje přetypování jinak
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Viz také

  • funkci is_array,
    která kontroluje, zda je proměnná pole
  • funkci settype,
    která převádí typ proměnné