여러 개의 리턴을 가진 함수를 크레이트하는 방법

Ralfh Bryan Perez 2023년1월30일
  1. 여러 값을 반환하는 PHP array
  2. 조건부 동적 반환 기능이있는 PHP 함수
  3. PHP 배열과 조건 동적 리턴의 조합
  4. PHP ‘제너레이터’에서 여러 값을 ‘수율’
여러 개의 리턴을 가진 함수를 크레이트하는 방법

PHP 함수는 재사용 가능한 문장 블록으로, 간단한 문자열, 배열 또는 JSON 객체가 될 수 있습니다. 그러나 둘 이상의 수익을 올릴 수는 없습니다. 배열을 사용할 수 있지만, 동적 변수를 반환하거나 생성기를 사용하여 조건문을 생성 할 수 있습니다 (* PHP 5.5 이상). *

여러 값을 반환하는 PHP array

funtion arrayFunc(){
    $var1 = "return 1";
    $var2 = "return 2";
    
    return array($var1, $var2);
}

신청에서:

$result = arrayFunc();
var_dump($result);
//output: array(2) { [0]=> string(8) "return 1" [1]=> string(8) "return 2" }

위의 함수는 배열 형태로 여러 개의 리턴을 가질 수 있으며 다음을 사용하여 액세스 할 수 있습니다.

$result = arrayFunc();
echo $result[0]; // return 1
echo $result[1]; // return 2

PHP 7.1부터는리스트를위한 새로운 기능인 ‘파괴’가 있습니다. 그것은 다음과 같은 일을 할 수 있다는 것을 의미합니다.

$array = ['dog', 'cat', 'horse', 'fish'];
[$q, $w, $e, $r] = $array;

echo $q; // output: dog
echo $w; // output: cat

함수에 적용하면 다음과 같습니다.

function descructingFunction(){
    return ['A', 'sample', 'descructing', 'function'];
}
[$a, $b, $c, $d] = descructingFunction();

echo $a; //output: A
echo $d; // output: function

조건부 동적 반환 기능이있는 PHP 함수

function condFunc($x = true){
    $ret1 = "One";
    $ret2 = "Two";
    
    if($x == true){
        return $ret1;
    }else{
        return $ret2;
    }
}

신청에서:

echo condFunc(true);
//output: One

이 방법을 사용하면 여러 값을 반환 할 필요가 없습니다. 따라서이 함수는 조건을 처리하여 필요한 올바른 값을 필터링합니다.

PHP 배열과 조건 동적 리턴의 조합

함수를 약간 수정하면 배열 또는 동적 리턴을 리턴 할 수 있습니다.

예:

function combination($x = true){
    $ret1 = "One";
    $ret2 = "Two";
    
    if($x === true){
        return $ret2;
    }
    if($x == "both"){
        return array($ret1, $ret2);
    }   
}

echo combination(); //output: Two
var_dump(combination("both")) //output: array(2) { [0]=> string(8) "return 1" [1]=> string(8) "return 2" }

이 방법을 사용하면 기능이보다 유연 해집니다.

PHP ‘제너레이터’에서 여러 값을 ‘수율’

generator 함수는 값을 반환하지 않으며, 필요한만큼 많은 수를 산출합니다. 반복 할 수있는 객체를 반환합니다.

예:

function multipleValues(){
    yield "return 1";
    yield "return 2";
}

$return = multipleValues();
foreach($return as $ret){
    echo $ret; //$ret first value is "return 1" then "return 2"
}

** 참고 : ** 발전기의 키워드는 ‘수율’입니다. 함수 명령문에 대한 ‘반환’처럼 작동하지만 실행을 중지하고 반환하지 않으며 코드 루프에 가치를 제공합니다.

**주의 : ** ‘수율’을 표현식으로 사용하는 경우 괄호로 묶어야합니다.

예:

$generator = (yield $test);

관련 문장 - PHP Function