परिचय
PHP 5 से आगे, किसी वस्तु के सभी दृश्यमान वस्तुओं की सूची के माध्यम से पुनरावृति करना संभव है। foreach . का उपयोग करके पुनरावृत्ति की जा सकती है लूप और साथ ही इटरेटर इंटरफेस। IteratorAggregate . भी है PHP में इंटरफ़ेस, जिसका उपयोग इस उद्देश्य के लिए किया जा सकता है
foreach लूप का उपयोग करना
उदाहरण
var="private variable"; $यह->var1=TRUE; $यह->x=100; $यह->y=200; $ यह-> जेड =300; } सार्वजनिक समारोह पुनरावृति(){ foreach ($यह $key => $value के रूप में) {प्रिंट "$कुंजी => $value\n"; } }}$obj =new myclass();foreach($obj as $key => $value) { प्रिंट "$key => $value\n";}echo "\n";$obj->iterate();?>
आउटपुट
आउटपुट नीचे जैसा है -
x => 100y => 200z => 300var => निजी चरvar1 => 1x => 100y => 200z => 300
इटरेटर इंटरफेस का उपयोग करना
यह इंटरफ़ेस निम्नलिखित अमूर्त विधियों को परिभाषित करता है जिन्हें निम्नलिखित उदाहरण में लागू किया जाएगा
एब्सट्रैक्ट पब्लिक करंट (शून्य):मिक्स्ड एब्सट्रैक्ट पब्लिक की (शून्य):स्केलाराब्स्ट्रक्ट पब्लिक नेक्स्ट (शून्य)Iterator::current — वर्तमान तत्व लौटाएं
इटरेटर ::कुंजी - वर्तमान तत्व की कुंजी लौटाएं
Iterator::next — अगले तत्व पर आगे बढ़ें
इटरेटर ::रिवाइंड - इटरेटर को पहले तत्व पर रिवाइंड करें
Iterator::valid — जाँचता है कि क्या वर्तमान स्थिति मान्य है
निम्नलिखित उदाहरण इटरेटर इंटरफ़ेस को लागू करके वस्तु पुनरावृत्ति को प्रदर्शित करता है
उदाहरण
गिरफ्तारी); } सार्वजनिक समारोह वर्तमान () { $ var =वर्तमान ($ यह-> गिरफ्तारी); इको "वर्तमान:$ var \ n"; $ var वापसी; } पब्लिक फंक्शन की () {$var =key($this->arr); इको "कुंजी:$ var \ n"; $ var वापसी; } सार्वजनिक समारोह अगला() { $var =अगला($यह->गिरफ्तारी); गूंज "अगला:$var\n"; $ var वापसी; } सार्वजनिक समारोह मान्य () {$ key =key($this->arr); $var =($कुंजी !==NULL &&$key !==FALSE); इको "वैध:$var\n"; $ var वापसी; }}$obj =new myclass();foreach ($obj as $k => $v) { प्रिंट "$k:$v\n";}?>आउटपुट
उपरोक्त कोड निम्नलिखित परिणाम उत्पन्न करता है -
rewindingvalid:1current:akey:00:अगला:bvalid:1current:bkey:11:bnext:cvalid:1current:ckey:22:cnext:valid: