라이브러리
[PHP] CallbackFilterIterator::accept - 현재 값, 현재 키 및 내부 반복자를 인수로 사용하여 콜백을 호출합니다.
CallbackFilterIterator::accept
CallbackFilterIterator는 PHP의 SPL(Split-Purpose Library) 모듈의 일부로, FilterIterator를 상속받은 클래스입니다. 이 클래스는 Iterator를 필터링하는 데 사용되며, accept 메서드를 통해 필터링을 수행합니다.
accept 메서드는 Iterator의 현재 항목을 필터링하는 데 사용됩니다. 이 메서드는 boolean 값을 반환하며, true이면 현재 항목을 필터링한 후 Iterator의 다음 항목을 반환하고, false이면 Iterator의 현재 항목을 필터링한 후 Iterator의 이전 항목으로 돌아갑니다.
예제
다음 예제는 CallbackFilterIterator를 사용하여 숫자 1부터 10까지의 Iterator에서 짝수만 필터링하는 방법을 보여줍니다.
#hostingforum.kr
php
function isEven($value) {
return $value % 2 == 0;
}
$numbers = new ArrayIterator(range(1, 10));
$evenNumbers = new CallbackFilterIterator($numbers, 'isEven');
foreach ($evenNumbers as $number) {
echo "$number
";
}
이 예제에서, ArrayIterator는 1부터 10까지의 숫자를 Iterator로 생성합니다. CallbackFilterIterator는 이 Iterator를 필터링하여 짝수만 남깁니다. foreach 문을 사용하여 필터링된 Iterator를 반복하면, 짝수만 출력됩니다.
예제 2
다음 예제는 CallbackFilterIterator를 사용하여 객체의 속성을 필터링하는 방법을 보여줍니다.
#hostingforum.kr
php
class Person {
public $name;
public $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$people = [
new Person('John', 25),
new Person('Jane', 30),
new Person('Bob', 35),
];
$filteredPeople = new CallbackFilterIterator(new ArrayIterator($people), function ($person) {
return $person->age > 30;
});
foreach ($filteredPeople as $person) {
echo "$person->name ($person->age)
";
}
이 예제에서, ArrayIterator는 Person 객체의 배열을 Iterator로 생성합니다. CallbackFilterIterator는 이 Iterator를 필터링하여 30세 이상의 사람만 남깁니다. foreach 문을 사용하여 필터링된 Iterator를 반복하면, 30세 이상의 사람만 출력됩니다.
결론
CallbackFilterIterator::accept 메서드는 Iterator의 현재 항목을 필터링하는 데 사용됩니다. 이 메서드는 boolean 값을 반환하며, true이면 현재 항목을 필터링한 후 Iterator의 다음 항목을 반환하고, false이면 Iterator의 현재 항목을 필터링한 후 Iterator의 이전 항목으로 돌아갑니다. CallbackFilterIterator를 사용하여 Iterator를 필터링하는 방법을 보여준 예제를 통해, 이 메서드의 사용법을 이해할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.