Funksjonen arrayval

I PHPs standardbibliotek finnes det ingen funksjon kalt arrayval, men du kan implementere lignende funksjonalitet selv. Nedenfor er en eksempelimplementering som konverterer enhver verdi til en array: hvis verdien allerede er en array, returneres den uendret, for andre typer opprettes en array med ett element.

Implementering av funksjonen

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

Eksempel på bruk

La oss konvertere en streng til en array ved hjelp av vår funksjon:

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

Resultat av kjøring av koden:

php['abcde']

Eksempel på bruk

La oss prøve å konvertere et tall:

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

Resultat av kjøring av koden:

php[123]

Eksempel på bruk

La oss sjekke hvordan den fungerer med en array:

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

Resultat av kjøring av koden:

php[1, 2, 3]

Alternative løsninger

I PHP finnes det andre måter å konvertere til array på:

php<?php
  // Bruk av (array) typekonvertering
  $array = (array)'string';
  print_r($array); // ['string']
  
  // For objekter fungerer typekonvertering annerledes
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Se også

  • funksjonen is_array,
    som sjekker om en variabel er en array
  • funksjonen settype,
    som konverterer typen til en variabel