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 функциясын,
    ал өзгөрмөнүн тибин өзгөртөт