
ArrayIterator::setFlags 메서드는 ArrayIterator의 동작을 제어하는 플래그를 설정하는 메서드입니다. 지원되는 플래그는 다음과 같습니다.
- ArrayIterator::VALIDATE_CURRENT : 현재 항목이 유효한지 확인합니다.
- ArrayIterator::VALIDATE_KEY : 현재 키가 유효한지 확인합니다.
- ArrayIterator::VALIDATE_FILTER : 현재 항목이 필터 조건을 충족하는지 확인합니다.
플래그를 설정하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$arrayIterator = new ArrayIterator($array);
$arrayIterator->setFlags(ArrayIterator::VALIDATE_CURRENT | ArrayIterator::VALIDATE_KEY);
setFlags 메서드를 사용하여 설정한 플래그가 반복처리 과정을 어떻게影响하는지 알려면, 각 플래그의 의미를 이해해야 합니다.
- VALIDATE_CURRENT 플래그를 설정하면, ArrayIterator는 반복처리 도중 현재 항목이 유효한지 확인합니다. 만약 현재 항목이 유효하지 않으면, ArrayIterator는 다음 항목으로 이동합니다.
- VALIDATE_KEY 플래그를 설정하면, ArrayIterator는 반복처리 도중 현재 키가 유효한지 확인합니다. 만약 현재 키가 유효하지 않으면, ArrayIterator는 다음 항목으로 이동합니다.
- VALIDATE_FILTER 플래그를 설정하면, ArrayIterator는 반복처리 도중 현재 항목이 필터 조건을 충족하는지 확인합니다. 만약 현재 항목이 필터 조건을 충족하지 않으면, ArrayIterator는 다음 항목으로 이동합니다.
예를 들어, 다음과 같은 배열이 있을 때,
#hostingforum.kr
php
$array = [
['name' => 'John', 'age' => 25],
['name' => 'Jane', 'age' => 30],
['name' => 'Bob', 'age' => 35],
];
ArrayIterator::VALIDATE_CURRENT 플래그를 설정하면, ArrayIterator는 반복처리 도중 현재 항목이 유효한지 확인합니다. 만약 현재 항목이 유효하지 않으면, ArrayIterator는 다음 항목으로 이동합니다.
#hostingforum.kr
php
$arrayIterator = new ArrayIterator($array);
$arrayIterator->setFlags(ArrayIterator::VALIDATE_CURRENT);
foreach ($arrayIterator as $item) {
print_r($item);
}
이 경우, ArrayIterator는 반복처리 도중 현재 항목이 유효한지 확인합니다. 만약 현재 항목이 유효하지 않으면, ArrayIterator는 다음 항목으로 이동합니다. 결과적으로, ArrayIterator는 유효한 항목만 반복처리합니다.
#hostingforum.kr
php
ArrayIterator Object
(
[storage:ArrayIterator:private] => Array
(
[0] => Array
(
[name] => John
[age] => 25
)
[1] => Array
(
[name] => Jane
[age] => 30
)
[2] => Array
(
[name] => Bob
[age] => 35
)
)
)
2025-06-18 15:43