문제

어디에서 참조를 얻을 수 있습니까? SPL predefined constants 처럼 SELF_FIRST,CHILD_FIRST ? ~에 php.net 나는 많이 얻지 못한다 (단지 그들의 유형).

도움이 되었습니까?

해결책

나는 클래스 상수의 개요 (일부 중 일부)는 당신이 링크 한 페이지 그런 다음 몇 가지 다른 점을 올리십시오.

recursiveiteratoriterator 반복 모드


그만큼 RecursiveIteratorIterator::LEAVES_ONLY 반복 모드. (이것이 기본 방법.)

이 반복 모드 (3 개 중 하나)는 반복 중에 사용 가능한 항목을 "잎"으로만 제한합니다 (재귀 구조는 다른 가지가 돋아 난 일련의 가지가있는 나무로 생각하거나 더 이상 가지가없는 경우 잎이 있습니다. 끝). 배열에서 array('a'=>array('b','c'),'d','e'=>array('f','g')) 잎은 b,c,d,f 그리고 g 그들은 끝에 있기 때문에 더 이상 아이템을 돋아 나지 않습니다.

이 모드를 보여주는 코드 스 니펫을 제공하려면 (다른 모드와 플래그를 사용하여 재귀 반복자 반복기를 갖는 동일한 재귀 배열 반복기를 갖는 일련의 예제가 있습니다) :

$array = array('a'=>array('b','c'),'d','e'=>array('f','g'));
$ait   = new RecursiveArrayIterator($array);

// Only iterate over leaves
$rit   = new RecursiveIteratorIterator($ait, RecursiveIteratorIterator::LEAVES_ONLY);
foreach ($rit as $item) {
    echo $item;
}
// Output: bcdfg

그만큼 RecursiveIteratorIterator::SELF_FIRST 반복 모드.

이 반복 모드는 반복 할 때 "부모"항목 (예 : 잎이 아닌) 항목이 자녀 앞에 배치되어야한다고 반복자에게 지시합니다.

// Parents come first
$rit   = new RecursiveIteratorIterator($ait, RecursiveIteratorIterator::SELF_FIRST);
foreach ($rit as $key => $item) {
    if (is_array($item)) echo "[$key]"; // parent
    else echo $item;                    // child
}
// Output: [a]bcd[e]fg

그만큼 RecursiveIteratorIterator::CHILD_FIRST 반복 모드.

이 반복 모드는 부모/자식 위치 주위를 교환하여 어린이 항목 (잎)이 먼저오고 다음과 같이 설명합니다.

// Children first
$rit   = new RecursiveIteratorIterator($ait, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($rit as $key => $item) {
    if (is_array($item)) echo "[$key]"; // parent
    else echo $item;                    // child
}
// Output: bc[a]dfg[e]

다른 요점

recursiveiteratoriterator 생성자 플래그

그것들은 재귀적인 반복기를 반복하는 세 가지 모드 (잎 만, 부모의 첫 번째 또는 자식 첫 번째)의 상수 일뿐입니다. recursiveiteratoriterator는 또한 a가 있습니다 flags 자식 물체가 예외를 던지는 경우 중단 여부와 같은 다른 행동에 영향을 미치는 인수, 전화 여부 __toString 항목 등의 경우 (깃발은입니다 CachingIterator 똑같이 문서화되지 않은 상수).

다른 SPL 상수

이것은 내 다음 요점과 관련이 있습니다. SPL 전반에 걸쳐 사용 가능한 모든 상수를 나열하는 단일 원 스톱 스팟이 없습니다. 대부분의 클래스는 자체 상수를 나열하지 않습니다. 그러나 사용할 수 있습니다 반사 사용 가능한 상수를 엿볼 수 있습니다. 명령 줄에서 같은 것을 사용하십시오 php --rc recursiveiteratoriterator | grep -i constant 재귀 인 테이터의 상수 목록을 보려면.

문서화 부족

PHP 매뉴얼에서 구할 수있는 문서는 자원 봉사자들이 전적으로 작성합니다. 특히 SPL은 해당 지역이 선박 모양과 최신 표준이되기 전에 여전히 많은 양의 작업을하고있는 아픈 곳입니다. 누구든지 도움을 원하는 사람이라면 (이 광고를 고려할지 확실하지 않습니까?) 그런 다음 저에게 연락하거나 (salathe@php.net) PHP 문서 메일 링리스트 (phpdoc-subscribe@lists.php로 빈 이메일을 보내십시오. .NET) 그리고 갇히게됩니다.

다른 팁

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top