라이브러리

[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 이상에서는 람다 표현식을 사용하여 필터링 조건을 정의할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 547 페이지

검색

게시물 검색