반복(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;
}
?>