Funkcija arrayval

V standardni knjižnici PHP ni funkcije arrayval, vendar lahko podobno funkcionalnost implementirate sami. Spodaj je predstavljen primer implementacije, ki pretvori katero koli vrednost v matriko: če je vrednost že matrika, se vrne brez sprememb, za druge tipe pa se ustvari matrika z enim elementom.

Implementacija funkcije

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

Primer uporabe

Pretvorimo niz v matriko z našo funkcijo:

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

Rezultat izvajanja kode:

php['abcde']

Primer uporabe

Poskusimo pretvoriti število:

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

Rezultat izvajanja kode:

php[123]

Primer uporabe

Preverimo delovanje z matriko:

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

Rezultat izvajanja kode:

php[1, 2, 3]

Alternativne rešitve

V PHP obstajajo drugi načini za pretvorbo v matriko:

php<?php
  // Uporaba (array) pretvorbe tipa
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Za objekte pretvorba tipa deluje drugače
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Glejte tudi

  • funkcijo is_array,
    ki preveri, ali je spremenljivka matrika
  • funkcijo settype,
    ki pretvori tip spremenljivke