पीएचपी Iterables
PHP - एक पुनरावर्तनीय क्या है?
एक पुनरावर्तनीय कोई भी मान है जिसे लूप के माध्यम से लूप किया जा सकता foreach()
है।
छद्म-प्रकार को iterable
PHP 7.1 में पेश किया गया था, और इसे फ़ंक्शन तर्कों और फ़ंक्शन रिटर्न मानों के लिए डेटा प्रकार के रूप में उपयोग किया जा सकता है।
PHP - Iterables का उपयोग करना
कीवर्ड का iterable
उपयोग फ़ंक्शन तर्क के डेटा प्रकार या फ़ंक्शन के रिटर्न प्रकार के रूप में किया जा सकता है:
उदाहरण
एक चलने योग्य फ़ंक्शन तर्क का प्रयोग करें:
<?php
function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}
$arr = ["a",
"b", "c"];
printIterable($arr);
?>
उदाहरण
एक पुनरावर्तनीय लौटें:
<?php
function getIterable():iterable {
return ["a", "b", "c"];
}
$myIterable = getIterable();
foreach($myIterable as $item) {
echo $item;
}
?>
पीएचपी - Iterables बनाना
सरणियों
सभी सरणियाँ पुनरावर्तनीय हैं, इसलिए किसी भी सरणी को किसी फ़ंक्शन के तर्क के रूप में उपयोग किया जा सकता है जिसके लिए एक पुनरावृत्त की आवश्यकता होती है।
इटरेटर्स
इंटरफ़ेस को लागू करने वाली कोई भी वस्तु किसी Iterator
फ़ंक्शन के तर्क के रूप में उपयोग की जा सकती है जिसके लिए एक चलने योग्य की आवश्यकता होती है।
एक पुनरावर्तक में वस्तुओं की एक सूची होती है और उनके माध्यम से लूप करने के तरीके प्रदान करता है। यह सूची में किसी एक तत्व के लिए एक सूचक रखता है। सूची में प्रत्येक आइटम में एक कुंजी होनी चाहिए जिसका उपयोग आइटम को खोजने के लिए किया जा सकता है।
एक पुनरावर्तक के पास ये विधियां होनी चाहिए:
current()
- उस तत्व को लौटाता है जिसे सूचक वर्तमान में इंगित कर रहा है। यह कोई भी डेटा प्रकार हो सकता हैkey()
सूची में वर्तमान तत्व से जुड़ी कुंजी लौटाता है। यह केवल एक पूर्णांक, फ्लोट, बूलियन या स्ट्रिंग हो सकता हैnext()
सूचक को सूची में अगले तत्व पर ले जाता हैrewind()
सूचक को सूची में पहले तत्व पर ले जाता हैvalid()
यदि आंतरिक सूचक किसी तत्व की ओर इशारा नहीं कर रहा है (उदाहरण के लिए, यदि अगला () सूची के अंत में कहा जाता है), तो यह गलत होना चाहिए। यह किसी अन्य मामले में सच हो जाता है
उदाहरण
Iterator इंटरफ़ेस को लागू करें और इसे एक पुनरावृत्त के रूप में उपयोग करें:
<?php
// Create an Iterator
class MyIterator implements Iterator {
private $items = [];
private $pointer = 0;
public
function __construct($items) {
// array_values() makes
sure that the keys are numbers
$this->items =
array_values($items);
}
public function current() {
return $this->items[$this->pointer];
}
public function
key() {
return $this->pointer;
}
public function next() {
$this->pointer++;
}
public function rewind() {
$this->pointer =
0;
}
public function valid() {
// count() indicates how many items are in the list
return $this->pointer < count($this->items);
}
}
// A
function that uses iterables
function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}
// Use the iterator as an iterable
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>