Funkcija arrayval

PHP standarta bibliotēkā nav funkcijas arrayval, bet līdzīgu funkcionalitāti var realizēt patstāvīgi. Zemāk ir parādīts implementācijas piemērs, kas pārveido jebkuru vērtību masīvā: ja vērtība jau ir masīvs, tā tiek atgriezta nemainīta, citiem datu tipiem tiek izveidots masīvs ar vienu elementu.

Funkcijas implementācija

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

Lietošanas piemērs

Pārveidosim virkni masīvā, izmantojot mūsu funkciju:

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

Koda izpildes rezultāts:

php['abcde']

Lietošanas piemērs

Mēģināsim pārveidot skaitli:

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

Koda izpildes rezultāts:

php[123]

Lietošanas piemērs

Pārbaudīsim darbību ar masīvu:

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

Koda izpildes rezultāts:

php[1, 2, 3]

Alternatīvi risinājumi

PHP pastāv citi veidi, kā pārveidot masīvā:

php<?php
  // (array) tipa pārveidošanas izmantošana
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Objektiem tipa pārveidošana strādā savādāk
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Skatiet arī

  • funkciju is_array,
    kas pārbauda, vai mainīgais ir masīvs
  • funkciju settype,
    kas pārveido mainīgā tipu