Функция arrayval

PHP нинг стандарт кутубхонасида arrayval функцияси мавжуд эмас, лекин ўзингиз шуга ўхшаш функционални амалга оширишингиз мумкин. Қуйида ҳар қандай қийматни массива айлантирадиган реализация мисоли келтирилган: агар қиймат аллакач массив бўлса, у ўзгартирилмасдан қайтарилади, бошқа турлар учун эса битта элементли массив яратилади.

Функцияни амалга ошириш

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

Фойдаланиш мисоли

Бизнинг функциямиз ёрдамида сатрни массива айлантирамиз:

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

Кодни ишга тушириш натижаси:

php['abcde']

Фойдаланиш мисоли

Сонни айлантириб кўрамиз:

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

Кодни ишга тушириш натижаси:

php[123]

Фойдаланиш мисоли

Массив билан ишлашни текширамиз:

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

Кодни ишга тушириш натижаси:

php[1, 2, 3]

Муқобил ечимлар

PHP да массива айлантиришнинг бошқа усуллари мавжуд:

php<?php
  // (array) тур ўзгартиришдан фойдаланиш
  $array = (array)'string';
  print_r($array); // ['string']
  
  // Объектлар учун тур ўзгартириш бошқча ишлайди
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

Ҳам қаранг

  • is_array функцияси,
    узгарувчининг массива эканлигини текширади
  • settype функцияси,
    узгарувчининг турини ўзгартиради