여러 개의 리턴을 가진 함수를 크레이트하는 방법
Ralfh Bryan Perez
2023년1월30일
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);