Funktio arrayval

PHP:n standardikirjastossa ei ole funktiota arrayval, mutta voit toteuttaa vastaavan toiminnallisuuden itse. Alla on esimerkkitoteutus, joka muuntaa minkä tahansa arvon taulukoksi: jos arvo on jo taulukko, se palautetaan muuttumattomana, muille tyypeille luodaan taulukko, jossa on yksi alkio.

Funktion toteutus

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

Käyttöesimerkki

Muunnetaan merkkijono taulukoksi käyttämällä funktiotamme:

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

Koodin suorituksen tulos:

php['abcde']

Käyttöesimerkki

Yritetään muuntaa numero:

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

Koodin suorituksen tulos:

php[123]

Käyttöesimerkki

Tarkistetaan toiminta taulukon kanssa:

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

Koodin suorituksen tulos:

php[1, 2, 3]

Vaihtoehtoiset ratkaisut

PHP:ssä on olemassa muita tapoja muuntaa taulukoksi:

php<?php
  // Käytetään (array) tyyppimuunnosta
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Olioille tyyppimuunnos toimii eri tavalla
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Katso myös

  • funktion is_array,
    joka tarkistaa, onko muuttuja taulukko
  • funktion settype,
    joka muuntaa muuttujan tyypin