Funktionen arrayval

I PHPs standardbibliotek finns ingen funktion arrayval, men man kan implementera liknande funktionalitet själv. Nedan presenteras en exempelimplementation som konverterar vilket värde som helst till en array: om värdet redan är en array returneras det oförändrat, för andra typer skapas en array med ett element.

Implementation av funktionen

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

Exempel på användning

Låt oss konvertera en sträng till en array med vår funktion:

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

Resultatet av kodkörningen:

php['abcde']

Exempel på användning

Låt oss försöka konvertera ett nummer:

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

Resultatet av kodkörningen:

php[123]

Exempel på användning

Låt oss kontrollera funktionen med en array:

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

Resultatet av kodkörningen:

php[1, 2, 3]

Alternativa lösningar

Det finns andra sätt att konvertera till array i PHP:

php<?php
  // Användning av (array) typkonvertering
  $array = (array)'string';
  print_r($array); // ['string']
  
  // För objekt fungerar typkonvertering annorlunda
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Se även

  • funktionen is_array,
    som kontrollerar om en variabel är en array
  • funktionen settype,
    som konverterar en variabels typ