라이브러리

[PHP] RecursiveCallbackFilterIterator::__construct - RecursiveIterator에서 RecursiveCallbackFilterIterator를 생성합니다.




RecursiveCallbackFilterIterator::__construct

PHP의 RecursiveCallbackFilterIterator 클래스는 RecursiveIteratorInterface를 구현한 클래스입니다. 이 클래스는 반복 가능한 객체를 생성하고, 반복 가능한 객체의 하위 항목을 반복할 수 있도록합니다. RecursiveCallbackFilterIterator::__construct 메서드는 RecursiveCallbackFilterIterator 클래스의 생성자입니다.

사용 방법


RecursiveCallbackFilterIterator::__construct 메서드는 다음과 같은 형식으로 사용됩니다.

#hostingforum.kr
php

RecursiveCallbackFilterIterator::__construct(

    RecursiveIteratorInterface $iterator,

    callable $callback,

    int $flags = RecursiveIteratorIterator::SELF_FIRST,

    string $group = ''

)



- `$iterator`: 반복 가능한 객체를 생성하기 위한 RecursiveIteratorInterface 객체입니다.
- `$callback`: 필터링을 위한 콜백 함수입니다. 콜백 함수는 반복 가능한 객체의 항목을 필터링하기 위해 사용됩니다.
- `$flags`: 반복 가능한 객체의 필터링 옵션입니다. 기본값은 RecursiveIteratorIterator::SELF_FIRST입니다.
- `$group`: 반복 가능한 객체의 그룹을 지정합니다. 기본값은 빈 문자열입니다.

예제


다음 예제는 RecursiveCallbackFilterIterator::__construct 메서드를 사용하여 반복 가능한 객체를 생성하고 필터링하는 방법을 보여줍니다.

#hostingforum.kr
php

// DirectoryIterator 객체를 생성합니다.

$dir = new RecursiveDirectoryIterator('./', RecursiveDirectoryIterator::SKIP_DOTS);



// 콜백 함수를 정의합니다.

function callback($file) {

    // 파일 이름이 'test'로 시작하는 파일만 필터링합니다.

    return strpos($file->getFilename(), 'test') === 0;

}



// RecursiveCallbackFilterIterator 객체를 생성합니다.

$iterator = new RecursiveCallbackFilterIterator($dir, 'callback');



// 반복 가능한 객체를 반복합니다.

foreach ($iterator as $file) {

    echo $file->getPathname() . "
";

}



이 예제는 './' 디렉토리와 하위 디렉토리에서 'test'로 시작하는 파일만 필터링하여 출력합니다.

필터링 옵션


RecursiveCallbackFilterIterator::__construct 메서드의 `$flags` 매개변수는 반복 가능한 객체의 필터링 옵션을 지정합니다. 다음은 필터링 옵션의 예입니다.

- `RecursiveIteratorIterator::SELF_FIRST`: 반복 가능한 객체의 항목을 필터링합니다.
- `RecursiveIteratorIterator::CHILD_FIRST`: 반복 가능한 객체의 하위 항목을 필터링합니다.
- `RecursiveIteratorIterator::LEAVES_ONLY`: 반복 가능한 객체의 하위 항목을 필터링하지 않습니다.

그룹 지정


RecursiveCallbackFilterIterator::__construct 메서드의 `$group` 매개변수는 반복 가능한 객체의 그룹을 지정합니다. 이 매개변수는 반복 가능한 객체의 항목을 필터링할 때 사용됩니다.

#hostingforum.kr
php

// DirectoryIterator 객체를 생성합니다.

$dir = new RecursiveDirectoryIterator('./', RecursiveDirectoryIterator::SKIP_DOTS);



// 콜백 함수를 정의합니다.

function callback($file) {

    // 파일 이름이 'test'로 시작하는 파일만 필터링합니다.

    return strpos($file->getFilename(), 'test') === 0;

}



// RecursiveCallbackFilterIterator 객체를 생성합니다.

$iterator = new RecursiveCallbackFilterIterator($dir, 'callback', RecursiveIteratorIterator::SELF_FIRST, 'test_group');



// 반복 가능한 객체를 반복합니다.

foreach ($iterator as $file) {

    echo $file->getPathname() . "
";

}



이 예제는 './' 디렉토리와 하위 디렉토리에서 'test'로 시작하는 파일만 필터링하여 출력합니다. 필터링된 항목은 'test_group' 그룹에 속합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색