Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP 함수에서 두 개 이상의 값 반환하기 – 배열 활용법

PHP에서 함수는 기본적으로 하나의 값만 반환할 수 있습니다. 즉, 두 개의 변수를 명시적으로 동시에 반환하는 것은 불가능합니다. 하지만 배열(array)과 같은 자료 구조에 여러 값을 담아 반환하면, 사실상 두 개 이상의 값을 한 번에 전달하는 것과 같은 효과를 얻을 수 있습니다.

예제 코드

다음 예제는 어떤 숫자의 약수(factor)를 모두 찾아 배열에 담은 뒤 반환하는 함수입니다. 호출부에서는 반환된 배열을 foreach 문으로 순회하며 결과를 출력합니다.

<?php
function factors( $n ) {
    // 빈 배열 선언
    $fact = array();
    // 1부터 n까지 반복하면서 약수 확인
    for ( $i = 1; $i < $n; $i++ ) {
        // i가 n의 약수라면 배열에 추가
        if( $n % $i == 0 )
            array_push( $fact, $i );
    }
    // 배열 반환
    return $fact;
}

// 변수 선언 및 초기화
$num = 12;

// 함수 호출
$nFactors = factors($num);

// 결과 출력
echo 'Factors of ' . $num . ' are: <br>';
foreach( $nFactors as $x ) {
    echo $x . "<br>";
}
?>

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Factors of 12 are:
1
2
3
4
6

추가 팁

이처럼 배열을 활용하면 함수가 여러 값을 유연하게 전달할 수 있습니다. 특히 PHP 7.1 이상에서는 다음과 같이 리스트(list()) 구조 분해 할당을 사용하면 반환된 배열의 각 요소를 개별 변수에 바로 담을 수 있어 더욱 편리합니다.

// 두 값을 배열로 반환하는 함수
function getValues() {
    return [10, 20];
}

// 각 값을 개별 변수에 할당
[$a, $b] = getValues();
echo $a; // 10
echo $b; // 20

필요에 따라 연관 배열을 사용해 키와 함께 값을 반환하면, 의미가 명확한 다중 값 처리도 가능합니다.