>백엔드 개발 >PHP 튜토리얼 >PHP 7 고급 기능: Yield 키워드를 사용하여 생성기 함수를 구현하는 방법

PHP 7 고급 기능: Yield 키워드를 사용하여 생성기 함수를 구현하는 방법

WBOY
WBOY원래의
2023-07-29 22:41:131203검색

PHP 7 고급 기능: Yield 키워드를 사용하여 생성기 기능을 구현하는 방법

소개:
PHP 7에는 몇 가지 새로운 고급 기능이 도입되었으며, 가장 눈길을 끄는 기능 중 하나는 Yield 키워드입니다. Yield 키워드를 사용하면 생성기 함수를 생성할 수 있으므로 한꺼번에 메모리에 저장하지 않고도 많은 양의 데이터를 더 쉽게 생성할 수 있습니다. 이 기사에서는 Yield 키워드를 사용하는 방법을 소개하고 코드 예제를 통해 독자가 작동 원리를 더 잘 이해할 수 있도록 돕습니다.

  1. 생성기 함수
    생성기 함수는 순회 가능한 데이터 시퀀스를 생성할 수 있는 Yield 키워드를 사용하여 정의된 함수입니다. 일반 함수와 달리 제너레이터 함수는 호출될 때마다 처음부터 실행을 시작하지 않고, 마지막 Yield 문의 위치부터 계속해서 실행됩니다. 이 기능을 사용하면 생성기 함수가 대량의 데이터를 효율적으로 생성할 수 있습니다.

다음은 간단한 생성기 함수의 예입니다.

function myGenerator() {
    yield 1;
    yield 2;
    yield 3;
}

$generator = myGenerator();

foreach ($generator as $value) {
    echo $value . " ";
}

// 输出:1 2 3

위의 예에서 myGenerator() 함수는 Yield 키워드를 사용하여 각각 숫자 1, 2, 3을 생성하는 생성기 함수입니다. 제너레이터 함수가 반환한 제너레이터 객체를 순회하면 제너레이터 함수가 생성한 값을 차례로 얻을 수 있습니다.

  1. 생성기 함수의 매개변수
    일반 함수와 마찬가지로 생성기 함수도 매개변수를 받을 수 있습니다. 일반적인 방법으로 생성기 함수에 매개변수를 정의하고 호출 시 생성기 함수에 전달하면 됩니다.
function rangeGenerator($start, $end) {
    for ($i = $start; $i <= $end; $i++) {
        yield $i;
    }
}

$generator = rangeGenerator(1, 5);

foreach ($generator as $value) {
    echo $value . " ";
}

// 输出:1 2 3 4 5

위의 예에서 rangeGenerator() 함수는 생성기 함수이며 두 개의 매개 변수 $start 및 $end를 허용합니다. 함수 내에서 루프와 Yield 키워드를 사용하여 $start부터 $end까지 모든 정수를 생성합니다.

  1. 생성기 함수의 키-값 쌍
    생성기 함수에서 Yield 키워드는 값 외에도 키-값 쌍을 생성할 수 있습니다. Yield 키워드 뒤에 화살표(=>)를 사용하여 키-값 쌍의 키와 값을 지정할 수 있습니다.
function keyValueGenerator() {
    yield 'name' => 'John';
    yield 'age' => 25;
    yield 'country' => 'USA';
}

$generator = keyValueGenerator();

foreach ($generator as $key => $value) {
    echo "$key: $value" . " ";
}

// 输出:name: John age: 25 country: USA

위의 예에서 keyValueGenerator() 함수는 생성기 함수입니다. Yield 키워드와 화살표를 사용하여 이름, 나이, 국가를 포함하는 일련의 키-값 쌍을 생성합니다. 생성기 객체를 순회할 때 키와 해당 값을 별도로 얻을 수 있습니다.

요약:
Generator 함수는 PHP 7에 도입된 매우 유용한 고급 기능입니다. Yield 키워드를 사용하면 한꺼번에 메모리에 저장하지 않고도 많은 양의 데이터를 효율적으로 생성할 수 있습니다. 생성기 함수의 매개변수와 생성된 키-값 쌍은 생성기 함수를 더욱 유연하고 강력하게 만듭니다. 이 글의 소개와 예시가 독자들이 Yield 키워드를 더 잘 이해하고 적용하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 7 고급 기능: Yield 키워드를 사용하여 생성기 함수를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.