반복(Iterables)

Iterable은 PHP 7.1에 도입된 의사 유형입니다. Traversable 인터페이스를 구현하는 모든 배열 또는 개체를 허용합니다. 이 두 유형 모두 foreach를 사용하여 반복 가능하며 생성기 내에서 yield와 함께 사용할 수 있습니다.

반복(Iterables) 사용

Iterable은 매개변수 유형으로 사용하여 함수에 값 집합이 필요하지만 foreach와 함께 사용되기 때문에 값 집합의 형식은 신경 쓰지 않습니다. 값이 Traversable의 배열이나 인스턴스가 아니면 TypeError가 발생합니다.

예제 #1 반복 가능한 매개변수 유형 예제

                  
<?php

function foo(iterable $iterable) {
    foreach ($iterable as $value) {
        // ...
    }
}

?>
                  
                

iterable로 선언된 매개변수는 null 또는 배열을 기본값으로 사용할 수 있습니다.

예제 #2 반복 가능한 매개변수 기본값 예

                  
<?php

function foo(iterable $iterable = []) {
    // ...
}

?>
                  
                

Iterable은 함수가 iterable 값을 반환할 것임을 나타내는 반환 유형으로 사용할 수도 있습니다. 반환된 값이 Traversable의 배열이나 인스턴스가 아니면 TypeError가 발생합니다.

예제 #3 반복 가능한 반환 유형 예

                  
<?php

function bar(): iterable {
    return [1, 2, 3];
}

?>
                  
                

iterable을 반환 유형으로 선언하는 함수도 생성기가 될 수 있습니다.

예제 #4 반복 가능한 생성기 반환 유형 예제

                  
<?php

function gen(): iterable {
    yield 1;
    yield 2;
    yield 3;
}

?>