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,