परिचय
Traversable एक एब्स्ट्रैक्ट इंटरफेस है, इसलिए इसे किसी क्लास द्वारा सीधे इम्प्लीमेंट नहीं किया जा सकता। आमतौर पर, Iterator या IteratorAggregate इंटरफेस, जो Traversable को एक्सटेंड करते हैं, यह जांचने के लिए उपयोग किए जाते हैं कि इम्प्लीमेंट करने वाली क्लास PHP में foreach कंस्ट्रक्ट का उपयोग करके ट्रैवर्सेबल है या नहीं।
कुछ बिल्ट-इन क्लास जो इस इंटरफेस को इम्प्लीमेंट करती हैं, foreach में उपयोग की जा सकती हैं और इटरेटर इंटरफेस इम्प्लीमेंट करने की आवश्यकता नहीं होती। चूंकि Traversable एक एब्स्ट्रैक्ट इंटरफेस है, इसमें कोई मेथड नहीं होते।
सिंटैक्स
Traversable {
//
}
जब IteratorAggregate या Iterator इंटरफेस इम्प्लीमेंट किए जाते हैं जो Traversable को एक्सटेंड करते हैं, तो उन्हें implements क्लॉज में इसके नाम से पहले सूचीबद्ध किया जाना चाहिए।
उपयोग: instanceof Traversable का उपयोग करके जांचें कि कोई मान foreach के साथ पुनरावृत्त करने योग्य है या नहीं:
if ($obj instanceof Traversable) {
foreach ($obj as $item) { ... }
}
नोट: सरणी Traversable नहीं हैं लेकिन foreach के साथ काम करती हैं। is_iterable() (PHP 7.1+) सरणी और Traversable दोनों के लिए true लौटाता है।