Funkcija arrayval

Standartinėje PHP bibliotekoje nėra funkcijos arrayval, bet panašią funkcionalumą galima realizuoti pačiam. Žemiau pateikiamas realizacijos pavyzdys, kuris konvertuoja bet kurią reikšmę į masyvą: jei reikšmė jau yra masyvas, ji grąžinama be pakeitimų, kitiems tipams sukuriamas masyvas su vienu elementu.

Funkcijos realizacija

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

Naudojimo pavyzdys

Konvertuokime eilutę į masyvą naudodami mūsų funkciją:

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

Kodo vykdymo rezultatas:

php['abcde']

Naudojimo pavyzdys

Pabandykime konvertuoti skaičių:

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

Kodo vykdymo rezultatas:

php[123]

Naudojimo pavyzdys

Patikrinkime veikimą su masyvu:

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

Kodo vykdymo rezultatas:

php[1, 2, 3]

Alternatyvūs sprendimai

PHP yra kiti būdai konvertuoti į masyvą:

php<?php
  // Tipo (array) konvertavimo naudojimas
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Objektams tipo konvertavimas veikia kitaip
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Taip pat žiūrėkite

  • funkciją is_array,
    kuri tikrina, ar kintamasis yra masyvas
  • funkciją settype,
    kuri konvertuoja kintamojo tipą