OOP in PHP
OOP क्या है
Object-Oriented Programming (OOP) code को objects के इर्द-गिर्द व्यवस्थित करने का तरीका है — ऐसी self-contained इकाइयाँ जो data (properties) और actions (methods) दोनों रखती हैं। बिखरे variables और functions के बजाय, आप related चीज़ें एक class में group करते हैं। यह बड़े projects को साफ़, दोबारा-इस्तेमाल-योग्य और बढ़ाने में आसान रखता है।
Class और object
<?php
class Car {
public $color = "red";
}
$myCar = new Car(); // object बनाना
echo $myCar->color; // red
?>
class Car blueprint है; new Car() असली object बनाता है। object की property तक arrow -> से पहुँचते हैं।
Properties और methods
Properties object का data हैं; methods उसके actions।
<?php
class Car {
public $brand = "Tata";
public function honk() {
return "Beep from " . $this->brand;
}
}
$c = new Car();
echo $c->honk();
?>
Method के अंदर $this का मतलब "यह object" है, तो $this->brand मौजूदा car का brand पढ़ता है।
Constructor
__construct() object बनते ही अपने-आप चलता है — setup के लिए बढ़िया।
<?php
class User {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$u = new User("Aman");
echo $u->name;
?>
new User("Aman") में "Aman" constructor को जाता है, जो उसे store करता है। अलग setup call की ज़रूरत नहीं।
Inheritance
Child class parent को extends करके उसका code दोबारा इस्तेमाल करती है।
<?php
class Animal {
public function eat() { return "eating"; }
}
class Dog extends Animal {
public function bark() { return "woof"; }
}
$d = new Dog();
echo $d->eat(); // inherited
echo $d->bark(); // अपना
?>
Dog के पास Animal का eat() अपने-आप है, साथ में अपना bark()। यह साझा code दोबारा लिखने से बचाता है।
public, private, protected
| Keyword | कहाँ से पहुँच योग्य |
|---|---|
| public | कहीं से भी |
| protected | Class और उसकी children |
| private | सिर्फ़ उसी class के अंदर |
Internal विवरण को private बनाइए ताकि बाहर का code उन्हें गलती से न बदले। सिर्फ़ ज़रूरी चीज़ें public रखिए। इस विचार को encapsulation कहते हैं।
आम गलतियाँ
newभूलना। Class सिर्फ़ blueprint है; object बनाने कोnewचाहिए।->की जगह.। Object members arrow->इस्तेमाल करते हैं, dot नहीं।- Methods में
$thisभूलना। object की अपनी property तक$this->propसे पहुँचिए। - सब कुछ public बनाना। सुरक्षित, साफ़ code के लिए internal data private रखिए।
सारांश
- OOP data और actions को classes व objects में group करता है।
- Class blueprint है;
newobject बनाता है; members तक->से पहुँचिए। __construct()object को अपने-आप set करता है।extendsinheritance देता है — parent का code दोबारा इस्तेमाल।public/private/protectedaccess तय करते हैं (encapsulation)।
आगे, OOP गहरा कीजिए abstract classes बनाम interfaces से, या code दोबारा इस्तेमाल कीजिए PHP traits से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Class और object में क्या अंतर है?
Car class है; आपकी ख़ास लाल car उसका object है। एक class कई objects बना सकती है।Constructor क्या करता है?
__construct() method अपने-आप तब चलता है जब आप new से object बनाते हैं। यह object की शुरुआती values set करने को इस्तेमाल होता है, जैसे नए user को तुरंत उसका नाम देना।OOP में inheritance क्या है?
extends करती है और उसकी सारी properties व methods पा लेती है, फिर अपनी जोड़ या बदल सकती है। यह साझा code दोहराने से बचाता है।public, private और protected में क्या अंतर है?
public कहीं से पहुँच योग्य, private सिर्फ़ उसी class के अंदर, और protected class और उसकी child classes के अंदर। internal विवरण के लिए private इस्तेमाल कीजिए।PHP में $this का क्या मतलब है?
$this मौजूदा object को दर्शाता है — वो ख़ास जिस पर method चल रहा है। इससे आप उस object की अपनी properties पढ़ते या set करते हैं, जैसे $this->name।