क्या आपने कभी सोचा है कि किसी PHP Object की सारी Properties को एक-एक करके echo या print कराने के बजाय, एक Loop के द्वारा आसानी से कैसे Access किया जाए? इसका जवाब है PHP OOP Object Iteration. इस पूरी गाइड में, हम हिंदी में जानेंगे कि foreach Loop का Use करके किसी भी Object की Internal Values को कैसे Iterate किया जाता है। साथ ही, हम Iterator Interface को Implement करना भी सीखेंगे ताकि हम अपने Objects के लिए Custom Iteration Logic Define कर सकें। Real-Life Examples, Code Snippets, और एक Success Story की मदद से, यह Concept आपकी उंगलियों पर होगा।
Php OOP Object Iteration क्या है?
साधारण शब्दों में, Object Iteration का मतलब है किसी Object की सारी Visible Properties के ऊपर एक Loop (जैसे foreach) चलाना, ताकि उनके Values को Access किया जा सके।
एक Real-Life Example से समझिए:
मान लीजिए आप एक Classroom में हैं। वहां पर 30 Students बैठे हैं। अब, अगर Teacher हर Student का Name लेना चाहे, तो वह एक-एक Student को Name बोलने के लिए कहेंगी। यहाँ Teacher एक Loop की तरह काम कर रही हैं और हर Student एक Property की तरह है जिसका Value (Name) Access किया जा रहा है।
PHP की दुनिया में:
- Classroom एक Class है।
- 30 Students उस Class के Objects हैं।
- Student Name Object का एक Property Value है।
- Teacher एक
foreachLoop की तरह है, जो हर Student (Property) के पास जाकर उनका Name (Value) ले रही है।

PHP Object Iteration क्यों ज़रूरी है?
- Code Efficiency (कोड की कुशलता): Object की सारी Properties को Manualy Access करने के बजाय, एक Loop के द्वार Automatically Access करना Code को Short और Efficient बनाता है।
- Dynamic Data Handling (डायनामिक डेटा हैंडलिंग): अगर Object में Properties की संख्या पहले से नहीं पता है, तो Iteration उन सभी को Access करने का सबसे अच्छा तरीका है।
- Flexibility (लचीलापन):
IteratorInterface का Use करके, आप अपने Objects के लिए Custom Iteration Logic Define कर सकते हैं, जिससे Data को अपने हिसाब से Access किया जा सके।
PHP Object Iteration कैसे Use करें?
Step 1: Basic Object Iteration with foreach
किसी भी Object पर foreach Loop सीधे तौर पर Use की जा सकती है। यह Loop Object की सारी Visible (Public) Properties को Iterate करेगी।
Example:
मान लीजिए हमारे पास एक Student Class है।
<?php
class Student {
public $name = "Rahul";
public $age = 20;
public $grade = "A";
private $password = "12345"; // Private Property
}
$studentObj = new Student();
// foreach Loop से Object Iteration
foreach ($studentObj as $property => $value) {
echo "$property: $value\n";
}
?>PHP
Explanation: यहाँ foreach Loop ने $studentObj Object की सिर्फ़ Public Properties ($name, $age, $grade) को ही Iterate किया है। Private Property ($password) Iterate नहीं हुई क्योंकि वह Object के Outside Visible नहीं है।
Step 2: Implementing the Iterator Interface
अगर आप चाहते हैं कि आपका Object foreach Loop के साथ Exactly वैसे ही behave करे जैसे आप चाहते हैं (यहाँ तक कि Private Properties भी Access हो सकें), तो आपको Iterator Interface Implement करना होगा।
Iterator Interface में 5 Methods होते हैं जिन्हें आपको Implement करना ज़रूरी होता है:
current(): Current Element को Return करता है।key(): Current Element की Key को Return करता है।next(): Iterator को अगले Element पर Move करता है।rewind(): Iterator को First Element पर Reset करता है।valid(): Check करता है कि Current Position Valid है या नहीं।
Example:
अब हम Student Class में Iterator Interface Implement करेंगे।
<?php
class Student implements Iterator {
private $data = [];
private $pointer = 0;
public function __construct($name, $age, $grade) {
$this->data = [
'name' => $name,
'age' => $age,
'grade' => $grade
];
}
// Iterator Methods Implementation
public function current() {
return $this->data[$this->key()];
}
public function key() {
$keys = array_keys($this->data);
return $keys[$this->pointer];
}
public function next() {
$this->pointer++;
}
public function rewind() {
$this->pointer = 0;
}
public function valid() {
return $this->pointer < count($this->data);
}
}
// Object Creation
$student = new Student("Priya", 22, "A+");
// Custom Iteration
foreach ($student as $key => $value) {
echo "$key: $value\n";
}
?>PHP
Explanation: अब हमारा Student Object Iterator Interface Implement करता है, इसलिए foreach Loop चलते time हमारा Custom Defined Logic Run होगा। यहाँ हमने एक Private Array $data में सारा Information Store किया है और Iterator Methods के द्वारा उसे Access किया है।
Real-Life Example of Object Iteration
अमित बैंगलोर का एक Web Developer है। उसे एक E-Commerce Website का Project मिला जहाँ Products की Information Various Objects में Store थी। Client ने Requirement दी कि हर Product की Detail एक Specific Format में Display होनी चाहिए।
The Problem:
अमित ने शुरू में हर Product Object की Properties को Manualy Access करके Display कराना शुरू किया। जैसे:
<?php
echo $product1->name;
echo $product1->price;
echo $product1->category;
echo $product2->name;
echo $product2->price;
echo $product2->category;
// ... और भी Objects
?>PHPपर जैसे-जैसे Products की संख्या बढ़ती गई, अमित का Code बहुत लंबा और Maintain करने में Difficult होता गया। कई बार वह कुछ Properties Display कराना भी भूल जाता था।
The Solution:
अमित के Senior ने उसे Object Iteration के बारे में बताया। अमित ने सभी Product Objects को एक Array में Store किया और एक foreach Loop के द्वारा उन्ह iterate किया।
<?php
$products = [$product1, $product2, $product3, ...];
foreach ($products as $product) {
echo $product->name . " - " . $product->price . " - " . $product->category . "<br>";
}
?>PHPइससे Code बहुत Short और Clean हो गया। बाद में, जब Client ने Custom Display Format की Demand की, तो अमित ने Iterator Interface Implement करके अपने Objects के लिए Custom Iteration Logic Define कर दिया, जिससे Data Exactly उसी Format में Display होने लगा जैसा Client चाहता था।
Advanced Concepts: IteratorAggregate Interface
Iterator Interface Implement करना कभी-कभी थोड़ा Lengthy हो सकता है। PHP एक और Easy Interface Provide करता है: IteratorAggregate।
IteratorAggregate में सिर्फ़ एक ही Method Implement करना होता है: getIterator(). यह Method एक External Iterator Return करता है।
<?php
class ProductCollection implements IteratorAggregate {
private $products = [];
public function addProduct($product) {
$this->products[] = $product;
}
public function getIterator() {
return new ArrayIterator($this->products);
}
}
// Usage
$collection = new ProductCollection();
$collection->addProduct("Laptop");
$collection->addProduct("Mouse");
$collection->addProduct("Keyboard");
foreach ($collection as $product) {
echo $product . "\n";
}
?>PHP
IteratorAggregate Interface Use करना Iterator के मुकाबले ज़्यादा Simple है, खासकर तब जब आपके पास पहले से ही एक Array है जिसे आप Iterate करना चाहते हैं।
ArrayIterator vs. Iterator
| Methods | 5 Methods Implement करने होंगे | सिर्फ़ 1 Method Implement करना होगा |
| Complexity | थोड़ा Complex | Simple |
| Control | Full Control over Iteration | Limited Control, ArrayIterator पर निर्भर |
| Use Case | Custom Iteration Logic के लिए | Existing Arrays को Iterate करने के लिए |
सरल शब्दों में:
- Use Iterator जब आपको पूरी तरह से Custom Iteration Logic Define करनी हो।
- Use IteratorAggregate जब आपके पास एक Array है और आप उसे Directly Iterate करना चाहते हैं।
Conclusion:
- Object Iteration
foreachLoop के द्वारा Object की Properties को Access करने का एक तरीका है। foreachसिर्फ़ Public Properties को ही Iterate करता है।- Iterator Interface Implement करके आप अपने Objects के लिए Custom Iteration Logic Define कर सकते हैं।
- IteratorAggregate Interface एक Simple Alternative है जब आपके पास पहले से ही Iterate करने के लिए Data Array के Form में हो।
- Object Iteration Code को Short, Efficient, और Maintainable बनाता है।
Free Business Listing

Welcome to HindiTutorials, your go-to platform for learning and mastering concepts in Hindi! Our mission is to make education accessible and simple for everyone by providing high-quality tutorials on programming, technology, and various other topics.