라이브러리
[PHP] FilterIterator::accept - 반복자의 현재 요소가 허용되는지 확인합니다.
FilterIterator::accept
`FilterIterator`는 PHP의 Iterator 인터페이스를 구현한 클래스로, 원본 Iterator의 요소를 필터링하는 기능을 제공합니다. `accept` 메소드는 FilterIterator의 핵심 메소드 중 하나로, 원본 Iterator의 요소를 필터링하는 로직을 정의합니다.
# accept 메소드의 역할
`accept` 메소드는 FilterIterator의 요소를 필터링하는 로직을 정의합니다. 이 메소드는 원본 Iterator의 요소를 받아서, 필터링 조건에 따라 true 또는 false를 반환합니다. true를 반환하면 요소는 필터링되지 않고, false를 반환하면 요소는 필터링됩니다.
# accept 메소드의 사용 예제
#hostingforum.kr
php
class EvenNumberFilter extends FilterIterator {
public function accept() {
$number = $this->getInnerIterator()->current();
return $number % 2 == 0;
}
}
$numbers = new ArrayIterator([1, 2, 3, 4, 5, 6]);
$evenNumbers = new EvenNumberFilter($numbers);
foreach ($evenNumbers as $number) {
echo $number . "
";
}
위 예제에서, `EvenNumberFilter` 클래스는 `FilterIterator`를 상속받습니다. `accept` 메소드는 원본 Iterator의 요소를 받아서, 짝수인지 아닌지를 확인합니다. 짝수인 경우 true를 반환하고, 홀수인 경우 false를 반환합니다.
`EvenNumberFilter` 객체를 생성하고, 원본 Iterator의 요소를 필터링합니다. 필터링된 요소만 foreach 문을 통해 출력됩니다.
# accept 메소드의 사용 예제 (함수형 프로그래밍)
#hostingforum.kr
php
$numbers = [1, 2, 3, 4, 5, 6];
$evenNumbers = array_filter($numbers, function($number) {
return $number % 2 == 0;
});
print_r($evenNumbers);
위 예제에서, `array_filter` 함수를 사용하여 원본 배열의 요소를 필터링합니다. 필터링 조건은 `accept` 메소드와 동일합니다. 필터링된 요소만 출력됩니다.
# accept 메소드의 사용 예제 (함수형 프로그래밍, 람다 표현식)
#hostingforum.kr
php
$numbers = [1, 2, 3, 4, 5, 6];
$evenNumbers = array_filter($numbers, fn($number) => $number % 2 == 0);
print_r($evenNumbers);
위 예제에서, PHP 7.4 이상에서 사용할 수 있는 람다 표현식을 사용하여 필터링 조건을 정의합니다. 필터링된 요소만 출력됩니다.
결론
`FilterIterator::accept` 메소드는 원본 Iterator의 요소를 필터링하는 로직을 정의합니다. 이 메소드는 필터링 조건에 따라 true 또는 false를 반환합니다. 필터링된 요소만 foreach 문을 통해 출력됩니다. PHP 7.4 이상에서는 람다 표현식을 사용하여 필터링 조건을 정의할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.