वस्तु-उन्मुख प्रोग्रामिङ (OOP) एक प्रोग्रामिङ प्रतिमान हो जसले वस्तुहरू प्रयोग गरेर डेटा र व्यवहारलाई प्रतिनिधित्व गर्दछ र हेरफेर गर्दछ, जुन वर्गहरूको उदाहरणहरू हुन्। PHP ले निर्मित प्रकार्य र संरचनाहरूको संग्रह मार्फत OOP समर्थन प्रदान गर्दछ।
PHP मा एक वर्ग वस्तु निर्माण को लागी एक खाका हो। वर्गले वस्तुको परिभाषा गर्छ गुण (सदस्य चर वा विशेषताहरू पनि भनिन्छ) र विधिहरू (सदस्य कार्यहरू वा व्यवहारहरू पनि भनिन्छ)। सर्तहरू "var" र "प्रकार" वर्ग भित्र क्रमशः गुण र विधिहरू निर्दिष्ट गर्न प्रयोग गरिन्छ। यहाँ आधारभूत PHP वर्गको उदाहरण हो:
class Person {
var $name;
var $age;
function setName($name) {
$this->name = $name;
}
function getName() {
return $this->name;
}
function setAge($age) {
$this->age = $age;
}
function getAge() {
return $this->age;
}
}
यस उदाहरणको वर्ग "व्यक्ति" मा दुई गुणहरू छन्: $name र $age। त्यहाँ चार विधिहरू पनि छन्: setName(), getName(), setAge(), र getAge()। यी विधिहरू प्रयोग गरिन्छ सेट र सम्पत्ति मानहरू पुन: प्राप्त गर्नुहोस्। यो ध्यान दिनुपर्छ कि "यो" शब्दले वर्ग भित्रको वर्तमान वस्तुलाई जनाउँछ।
क्लास वस्तु बनाउनको लागि, हामी क्लास नाम पछि "नयाँ" किवर्ड प्रयोग गर्छौं। यहाँ एउटा उदाहरण छ:
$person = new Person();
एकचोटि हामीसँग वस्तु छ, हामी गुणहरूको मानहरू सेट गर्न र प्राप्त गर्न वर्गको विधिहरू प्रयोग गर्न सक्छौं:
$person->setName("John Doe");
$person->setAge(30);
echo $person->getName(); // prints "John Doe"
echo $person->getAge(); // prints "30"
इनहेरिटेन्स वस्तु-उन्मुख प्रोग्रामिङमा एक आधारभूत अवधारणा हो जसले एक वर्गलाई अर्कोबाट विशेषताहरू र कार्यहरू प्राप्त गर्न अनुमति दिन्छ। एक उपवर्ग वा व्युत्पन्न वर्ग एक हो जुन अर्को वर्गबाट इनहेरिट हुन्छ, जबकि जसबाट यो प्राप्त हुन्छ त्यो वर्गलाई सुपर क्लास वा आधार वर्ग भनिन्छ।
यहाँ एउटा "विद्यार्थी" उपवर्गको उदाहरण छ जुन सुपरक्लास "व्यक्ति" बाट आएको हो:
class Student extends Person {
var $studentId;
function setStudentId($id) {
$this->studentId = $id;
}
function getStudentId() {
return $this->studentId;
}
}
यस उदाहरणमा, विद्यार्थी वर्गले व्यक्ति वर्गका सबै गुणहरू र विधिहरू इनहेरिट गर्छ र यसमा नयाँ गुण $studentId र विधिहरू setStudentId(), र getStudentId() थप्छ।
$student = new Student();
$student->setName("Jane Doe");
$student->setAge(20);
$student->setStudentId("123456");
echo $student->getName(); // prints "Jane Doe"
echo $student->getAge(); // prints "20"
echo $student->getStudentId(); // prints "123456"
इन्टरफेस एक प्रकारको अनुबंध हो जसले विधिहरूको सेट निर्दिष्ट गर्दछ जुन वर्गले कार्यान्वयन गर्नुपर्छ। इन्टरफेस किवर्ड एक परिभाषित गर्न प्रयोग गरिन्छ इंटरफेस, र यसले केवल विधि हस्ताक्षरहरू समावेश गर्न सक्छ, विधि निकायहरू होइन।
यहाँ एक "आकार" इन्टरफेस को एक उदाहरण छ जुन आकार को लागी विधिहरु को एक सेट परिभाषित गर्दछ:
interface Shape {
public function getArea();
public function getPerimeter();
}
इन्टरफेस लागू गर्ने वर्गले इन्टरफेसमा निर्दिष्ट विधिहरू परिभाषित गर्नुपर्छ। यहाँ वर्ग "आयत" को एक उदाहरण हो जसले आकार इन्टरफेस लागू गर्दछ:
class Rectangle implements Shape {
private $width;
private $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function getArea() {
return $this->width * $this->height;
}
public function getPerimeter() {
return 2 * ($this->width + $this->height);
}
}
यस उदाहरणमा, आयत वर्गले आकार इन्टरफेसको getArea() र getPerimeter() प्रकार्यहरू लागू गर्दछ। हामी अब एक आयत वस्तु निर्माण गर्न र यसको प्रयोग गर्न सक्छौं विधिहरू:
$rectangle = new Rectangle(5, 10);
echo $rectangle->getArea(); // prints "50"
echo $rectangle->getPerimeter(); // prints "30"
कक्षा, वस्तुहरु, विरासत, र इन्टरफेसहरू PHP मा OOP को आधारभूत विचारहरू हुन्। त्यहाँ धेरै अतिरिक्त परिष्कृत सिद्धान्तहरू छन् जुन PHP मा सफ्टवेयरलाई थप मोड्युलर, व्यवस्थित र पुन: प्रयोज्य बनाउनको लागि लागू गर्न सकिन्छ, जस्तै एब्स्ट्र्याक्ट क्लासहरू, पोलिमोर्फिज्म, इन्क्याप्सुलेशन, र यस्तै।
यो सम्झना महत्त्वपूर्ण छ कि OOP PHP मा एक मात्र प्रतिमान हो; PHP कोड निर्माण गर्न अन्य धेरै तरिकाहरू छन्; अझै, OOP व्यापक रूपमा प्रयोग गरिन्छ र वर्तमान PHP विकासमा सिफारिस गरिएको अभ्यास मानिन्छ।
प्रश्नोत्तर
प्रश्न: वस्तु-उन्मुख प्रोग्रामिङ (OOP) के हो?
A: OOP एक प्रोग्रामिङ प्रतिमान हो जसले वस्तुहरू प्रयोग गरेर डेटा र व्यवहारलाई प्रतिनिधित्व गर्दछ र हेरफेर गर्दछ, जुन वर्गहरूको उदाहरणहरू हुन्।
Q: के PHP ले OOP लाई समर्थन गर्छ?
A: हो, PHP एक लोकप्रिय सर्भर-साइड स्क्रिप्टिङ भाषा हो जसमा OOP सक्षम गर्न बिल्ट-इन प्रकार्यहरू र सुविधाहरू समावेश छन्।
प्रश्न: म कसरी PHP मा वस्तु सिर्जना गर्छु?
A: कक्षाको वस्तु सिर्जना गर्न, हामी "नयाँ" कुञ्जी शब्द प्रयोग गर्छौं, त्यसपछि कक्षाको नाम। उदाहरणका लागि: $person = new Person();
प्रश्न: OOP मा विरासत के हो?
A: इनहेरिटेन्स OOP को आधारभूत पक्ष हो जसले वर्गलाई अर्को वर्गबाट गुण र विधिहरू प्राप्त गर्न अनुमति दिन्छ।
प्रश्न: तपाईं इन्टरफेसहरू के हो भनेर व्याख्या गर्न सक्नुहुन्छ?
A: इन्टरफेसहरू वर्गको लागि सम्झौता परिभाषित गर्ने तरिका हो, वर्गले लागू गर्नुपर्ने विधिहरूको सेट निर्दिष्ट गर्दै।
Q: त्यहाँ PHP मा OOP को अन्य उन्नत अवधारणाहरू छन्?
A: हो, त्यहाँ धेरै अतिरिक्त परिष्कृत सिद्धान्तहरू छन् जुन PHP मा कार्यक्रमलाई थप मोड्युलर, व्यवस्थित र पुन: प्रयोज्य बनाउनको लागि लागू गर्न सकिन्छ, जस्तै एब्स्ट्र्याक्ट क्लासहरू, पोलिमोर्फिज्म, इन्क्याप्सुलेशन, र यस्तै।
व्यायाम गर्नुहोस्:
- PHP मा क्लास बनाउनको लागि सिन्ट्याक्स के हो?
- तपाइँ कसरी PHP कक्षामा कन्स्ट्रक्टर विधि परिभाषित गर्न सक्नुहुन्छ?
- PHP वर्गमा स्थिर विधि र गैर-स्थिर विधि बीच के भिन्नता छ?
- तपाइँ कसरी PHP मा कक्षाबाट वस्तु सिर्जना गर्न सक्नुहुन्छ?
- PHP वर्गमा "विस्तार" कुञ्जी शब्दको उद्देश्य के हो?
जवाफहरू:
- PHP मा क्लास बनाउनको लागि सिन्ट्याक्स "class ClassName {}" हो।
- PHP वर्गमा कन्स्ट्रक्टर विधिलाई __construct() प्रकार्य प्रयोग गरेर परिभाषित गर्न सकिन्छ।
- एक स्थिर विधिलाई वर्गको वस्तु सिर्जना नगरी कल गर्न सकिन्छ, जबकि गैर स्थिर विधिलाई वस्तु सिर्जना गर्न आवश्यक छ र त्यसपछि यसलाई कल गर्न सकिन्छ।
- PHP मा क्लासबाट "नयाँ" कुञ्जी शब्द प्रयोग गरेर, क्लासको नाम पछि, र यसलाई चलमा असाइन गरेर वस्तु सिर्जना गर्न सकिन्छ। जस्तै $object = new ClassName;
- PHP वर्गमा "विस्तार" कुञ्जी शब्दलाई अभिभावक वर्गबाट वर्ग प्राप्त भएको संकेत गर्न प्रयोग गरिन्छ। यसले वर्गलाई अर्को वर्गबाट गुण र विधिहरू प्राप्त गर्न अनुमति दिन्छ।