पीएचपी ओओपी - कक्षाएं और वस्तुएं
एक वर्ग वस्तुओं के लिए एक टेम्पलेट है, और एक वस्तु वर्ग का एक उदाहरण है।
ओओपी केस
आइए मान लें कि हमारे पास फल नामक एक वर्ग है। एक फल में नाम, रंग, वजन आदि जैसे गुण हो सकते हैं। हम इन गुणों के मूल्यों को रखने के लिए $name, $color, और $weight जैसे चर परिभाषित कर सकते हैं।
जब अलग-अलग वस्तुएं (सेब, केला, आदि) बनाई जाती हैं, तो वे कक्षा से सभी गुणों और व्यवहारों को प्राप्त करते हैं, लेकिन प्रत्येक वस्तु के गुणों के लिए अलग-अलग मूल्य होंगे।
एक वर्ग को परिभाषित करें
एक वर्ग को class
कीवर्ड का उपयोग करके परिभाषित किया जाता है, उसके बाद वर्ग का नाम और घुंघराले ब्रेसिज़ ({}) की एक जोड़ी होती है। इसके सभी गुण और विधियाँ ब्रेसिज़ के अंदर जाती हैं:
वाक्य - विन्यास
<?php
class Fruit {
// code goes here...
}
?>
नीचे हम फ्रूट नामक एक वर्ग की घोषणा करते हैं जिसमें दो गुण ($name और $color) होते हैं और $name प्रॉपर्टी सेट करने और प्राप्त करने के लिए दो तरीके set_name() और get_name() होते हैं:
<?php
class Fruit {
// Properties
public
$name;
public $color;
// Methods
function
set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
?>
नोट: एक वर्ग में, चर को गुण कहा जाता है और कार्यों को विधियाँ कहा जाता है!
वस्तुओं को परिभाषित करें
वस्तुओं के बिना कक्षाएं कुछ भी नहीं हैं! हम एक क्लास से कई ऑब्जेक्ट बना सकते हैं। प्रत्येक वस्तु में कक्षा में परिभाषित सभी गुण और विधियाँ होती हैं, लेकिन उनके पास अलग-अलग गुण मान होंगे।
एक वर्ग के ऑब्जेक्ट new
कीवर्ड का उपयोग करके बनाए जाते हैं।
नीचे दिए गए उदाहरण में, $apple और $banana फल वर्ग के उदाहरण हैं:
उदाहरण
<?php
class Fruit {
// Properties
public
$name;
public $color;
// Methods
function
set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>
नीचे दिए गए उदाहरण में, हम $color प्रॉपर्टी सेट करने और प्राप्त करने के लिए फ्रूट क्लास में दो और तरीके जोड़ते हैं:
उदाहरण
<?php
class Fruit {
// Properties
public $name;
public $color;
// Methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}
$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>
पीएचपी - $यह कीवर्ड
$this कीवर्ड वर्तमान ऑब्जेक्ट को संदर्भित करता है, और केवल विधियों के अंदर उपलब्ध है।
निम्नलिखित उदाहरण देखें:
उदाहरण
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
?>
तो, हम $name संपत्ति के मूल्य को कहाँ बदल सकते हैं? दो तरीके हैं:
1. कक्षा के अंदर (एक set_name() विधि जोड़कर और $this का उपयोग करें):
उदाहरण
<?php
class Fruit {
public $name;
function set_name($name) {
$this->name = $name;
}
}
$apple = new Fruit();
$apple->set_name("Apple");
echo $apple->name;
?>
2. वर्ग के बाहर (सीधे संपत्ति मूल्य बदलकर):
उदाहरण
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
$apple->name = "Apple";
echo $apple->name;
?>
पीएचपी - उदाहरण
आप instanceof
कीवर्ड का उपयोग यह जांचने के लिए कर सकते हैं कि कोई वस्तु किसी विशिष्ट वर्ग से संबंधित है या नहीं:
उदाहरण
<?php
$apple = new Fruit();
var_dump($apple instanceof
Fruit);
?>