Traversable은 PHP의 내장 인터페이스입니다. 메소드를 정의하지는 않지만 태그 인터페이스 일 뿐이며, 인터페이스를 구현하는 클래스가 트래버스 작업, 특히 Foreach 문과 반복되는 데 사용할 수 있음을 나타냅니다.
통과 가능한 인터페이스 자체는 직접적인 기능을 제공하지 않습니다. 그 기능은 순회 중에 사용할 수있는 특정 클래스를 표시하는 것입니다. PHP의 Foreach 명령문은이 인터페이스에 트래버스 어레이 또는 객체에 의존합니다. 클래스가 통과 가능한 인터페이스를 구현하면 foreach 문에서 횡단 할 수 있습니다.
트래버스 가능한 인터페이스를 사용하려면 사용자 정의 클래스에서 구현해야합니다. 이 인터페이스를 구현하는 클래스는 Foreach 문에서 직접 사용할 수 있습니다. 간단한 예는 다음과 같습니다.
class MyIterator implements Traversable {
private $items = [];
public function __construct(array $items) {
$this->items = $items;
}
public function getItems() {
return $this->items;
}
}
$iterator = new MyIterator([1, 2, 3]);
foreach ($iterator as $item) {
echo $item . ' ';
}
// Output: 1 2 3
이 예에서, Myiterator 클래스는 통과 가능한 인터페이스를 구현하고 GetItems 메소드를 제공하여 요소가 횡단되도록합니다. Foreach 문서에서, 우리는 myiterator 객체의 요소를 직접 반복 할 수 있습니다.
통과 가능한 인터페이스 외에도 Ierator 인터페이스라고하는 PHP에는 매우 일반적으로 사용되는 인터페이스도 있습니다. 트래버스 가능은 반복자 인터페이스의 상위 인터페이스라는 점을 주목할 가치가 있습니다. 따라서 반복자 인터페이스를 구현하는 클래스는 트래버스 가능한 인터페이스를 구현해야합니다.
반복자 인터페이스는 전류, 키, 다음, 되감기, 유효 등과 같은 필요한 트래버스 방법을 정의합니다. 이러한 방법은 트래버스 동작을 정의하여 반복자의 요소에 순서대로 액세스 할 수 있도록 도와줍니다.
일반적으로 사용자 정의 클래스에서는 트래버스 가능한 인터페이스 및 반복자 인터페이스를 모두 구현하고 반복자 인터페이스 메소드에서 특정 트래버스 로직을 구현합니다. 이러한 방식으로 PHP가 제공하는 내장 반복 기능 (현재, 키 등)과 같은 내장 반복 기능을 사용하여 트래버스 작업을 단순화 할 수 있습니다.
통과 가능한 인터페이스는 PHP의 중요한 인터페이스입니다. 이 인터페이스를 구현하는 클래스를 Foreach 문에 의해 통과 할 수 있도록 마커 인터페이스 역할을합니다. 통과 가능한 인터페이스 자체는 기능을 제공하지 않지만 Traversal 클래스의 중요한 식별자입니다. 실제 개발에서 Ierator 인터페이스를 함께 사용하면 클래스의 트래버스 작동이보다 유연하고 읽을 수 있습니다.