Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> PHP

PHP Iterable इंटरफ़ेस

परिचय

इटरेटर इंटरफ़ेस सार का विस्तार करता है संक्रमणीय इंटरफेस। PHP कई बिल्ट-इन इटरेटर प्रदान करता है (जिन्हें SPL इटरेटर कहा जाता है ) कई नियमित कार्यों के लिए। उदाहरण हैं ArrayIterator , DirectoryIterator आदि। एक उपयोगकर्ता वर्ग जो इटरेटर इंटरफ़ेस को लागू करता है, उसमें परिभाषित सार विधियों को लागू करना चाहिए।

सिंटैक्स

Iterator extends Traversable {
   /* Methods */
   abstract public current ( void ) : mixed
   abstract public key ( void ) : scalar
   abstract public next ( void ) : void
   abstract public rewind ( void ) : void
   abstract public valid ( void ) : bool
}

तरीके

Iterator::current — वर्तमान तत्व लौटाएं

इटरेटर ::कुंजी - वर्तमान तत्व की कुंजी लौटाएं

Iterator::next — अगले तत्व पर आगे बढ़ें

इटरेटर ::रिवाइंड - इटरेटर को पहले तत्व पर रिवाइंड करें

Iterator::valid — जाँचता है कि क्या वर्तमान स्थिति मान्य है

IteratorAggregate implementing को लागू करते समय या इटरेटर इंटरफ़ेस जो ट्रैवर्सेबल का विस्तार करता है, उन्हें इसके नाम से पहले कार्यान्वयन . में सूचीबद्ध किया जाना चाहिए खंड।

इटरेटर उदाहरण

निम्नलिखित PHP स्क्रिप्ट में, इंटरफ़ेस लागू करने वाले वर्ग में निजी चर के रूप में एक सरणी होती है। Iterator के अमूर्त तरीकों को लागू करते हुए, हम foreach . का उपयोग करके सरणी को पार कर सकते हैं लूप के साथ-साथ अगला () विधि।

उदाहरण

<?php
class myIterator implements Iterator {
   private $index = 0;
   private $arr = array(10,20,30,40);
   public function __construct() {
      $this->index = 0;
   }
   public function rewind() {
      $this->index = 0;
   }
   public function current() {
      return $this->arr[$this->index];
   }
   public function key() {
      return $this->index;
   }
   public function next() {
      ++$this->index;
   }
   public function valid() {
      return isset($this->arr[$this->index]);
   }
}
?>

foreach . का उपयोग करना लूप, हम MyIterator ऑब्जेक्ट की सरणी संपत्ति पर पुनरावृति कर सकते हैं

$it = new myIterator();
foreach($it as $key => $value) {
   echo "$key=>". $value ."\n";
}

अगला () . को दबाकर भी पुनरावृत्ति की जा सकती है थोड़ी देर के लूप में विधि। रिवाइंड . करना सुनिश्चित करें लूप शुरू करने से पहले इटरेटर

उदाहरण

$it->rewind();
do {
   echo $it->key() . "=>" .$it->current() . "\n";
   $it->next();
}
while ($it->valid());

आउटपुट

दोनों अवसरों पर, सरणी गुण का ट्रैवर्सल निम्नलिखित परिणाम दिखाता है

0=>10
1=>20
2=>30
3=>40

  1. PHP में इंटरफेस को समझाइए।

    इस लेख में, हम यह पता लगाएंगे कि PHP इंटरफ़ेस का उपयोग कैसे किया जाए जो PHP ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में सबसे महत्वपूर्ण संरचना पैटर्न में से एक है। एक इंटरफ़ेस हमें प्रोग्राम बनाने में सक्षम बनाता है, यह इंगित करता है कि विशिष्ट विधियों को कैसे लागू किया जाता है, इसकी जटिलताओं और प्रक्रिया क

  1. PHP में बहुरूपता को समझाइए।

    शुरू करने के लिए, बहुरूपता ग्रीक शब्द पॉली (जिसका अर्थ है कई) और रूपवाद (जिसका अर्थ है रूप) से लिया गया है। बहुरूपता ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में एक उदाहरण प्रस्तुत करता है जहां विभिन्न वर्गों में समान चीजें करने वाली विधियों का एक समान नाम होना चाहिए। बहुरूपता अनिवार्य रूप से एक ओओपी पैटर्न

  1. PHP में interface_exists () फ़ंक्शन

    इंटरफ़ेस_एक्सिस्ट्स () फ़ंक्शन जाँचता है कि इंटरफ़ेस परिभाषित किया गया है या नहीं। यदि name_of_interface द्वारा दिए गए इंटरफ़ेस को परिभाषित किया गया है, तो यह TRUE लौटाता है, अन्यथा FALSE लौटाया जाता है। सिंटैक्स interface_exists(name_of_interface, autoload) पैरामीटर name_of_interface - इंटरफ़ेस