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
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
function arrayval($value): array {
return is_array($value) ? $value : [$value];
}
$res = arrayval('abcde');
print_r($res);
?>
Výsledek provedení kódu:
['abcde']
Příklad použití
Zkusme převést číslo:
<?php
function arrayval($value): array {
return is_array($value) ? $value : [$value];
}
$res = arrayval(123);
print_r($res);
?>
Výsledek provedení kódu:
[123]
Příklad použití
Ověřme funkčnost s polem:
<?php
function arrayval($value): array {
return is_array($value) ? $value : [$value];
}
$res = arrayval([1, 2, 3]);
print_r($res);
?>
Výsledek provedení kódu:
[1, 2, 3]
Alternativní řešení
V PHP existují další způsoby převodu na pole:
<?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']
?>