इस लेख में, हम यह पता लगाएंगे कि PHP इंटरफ़ेस का उपयोग कैसे किया जाए जो PHP ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में सबसे महत्वपूर्ण संरचना पैटर्न में से एक है।
एक इंटरफ़ेस हमें प्रोग्राम बनाने में सक्षम बनाता है, यह इंगित करता है कि विशिष्ट विधियों को कैसे लागू किया जाता है, इसकी जटिलताओं और प्रक्रिया को शामिल किए बिना, एक वर्ग को निष्पादित करना चाहिए। इसका तात्पर्य यह है कि एक इंटरफ़ेस विधि के नाम और तर्कों को परिभाषित कर सकता है, लेकिन विधियों की सामग्री को नहीं। इंटरफ़ेस को लागू करने वाले किसी भी वर्ग को इंटरफ़ेस द्वारा परिभाषित सभी विधियों को लागू करना चाहिए।
इंटरफेस को एक वर्ग के समान ही चित्रित किया जाता है, हालांकि, केवल इंटरफ़ेस कीवर्ड घोषणा में वर्ग वाक्यांश को प्रतिस्थापित करता है और उनकी सामग्री को परिभाषित किए बिना किसी भी विधि के बिना।
उदाहरण
आइए' एक इंटरफ़ेस बनाएं और इसे एक साधारण उदाहरण के साथ कार्यान्वित करें।
<?php Interface MyInterface { public function getName(); public function getAge(); } class MyClass implements MyFirstInterface{ public function getName() { echo "My name A".'<br>'; } public function getAge(){ echo "My Age 12"; } } $obj = new MyClass; $obj->getName(); $obj->getAge(); ?>
आउटपुट:
My name A My Age 12
स्पष्टीकरण:
यहां हमने एक इंटरफ़ेस MyFirstInterface घोषित किया है जिसमें दो तरीके getName और getAge बिना किसी सामग्री के हैं। तब MyClass वर्ग इस इंटरफ़ेस को लागू करता है और आवश्यकता के अनुसार उपलब्ध विधियों का उपयोग करता है।
आइए जानें इंटरफ़ेस की कुछ महत्वपूर्ण विशेषताएं:
- इंटरफ़ेस में ऐसी विधियाँ शामिल हैं जिनमें कोई सामग्री नहीं है, जिसका अर्थ है कि इंटरफ़ेस विधियाँ अमूर्त विधियाँ हैं।
- इंटरफ़ेस में प्रत्येक विधि में सार्वजनिक दृश्यता का दायरा होना चाहिए।
- इंटरफ़ेस बिल्कुल वैसी नहीं हैं जैसे क्लास एक क्लास से इनहेरिट कर सकती हैं लेकिन क्लास एक या अधिक इंटरफेस को लागू कर सकती है।
- इंटरफ़ेस के अंदर कोई चर मौजूद नहीं हो सकता।
नोट:
हम इंटरफ़ेस का उपयोग करके कई विरासत प्राप्त कर सकते हैं क्योंकि एक वर्ग एक से अधिक इंटरफ़ेस लागू कर सकता है जबकि यह केवल एक वर्ग का विस्तार कर सकता है।
उदाहरण
आइए इसे एक साधारण उदाहरण के साथ परखें।
<?php interface a{ public function printData(); } interface b{ public function getData(); } interface c extends a, b{ public function addData(); } class d implements c{ public function printData(){ echo "I am printing"; } public function getData(){ echo "I am reading data"; } public function addData(){ echo "I am adding" } } $myobj = new class d(); $myobj->printData(); $myobj->addData(); ?>
आउटपुट:
I am printing I am adding
स्पष्टीकरण :
यहां हमने तीन इंटरफेस यानी 'इंटरफ़ेस ए', 'इंटरफ़ेस बी', 'इंटरफ़ेस सी' घोषित किया है। इस मामले में इंटरफ़ेस सी पिछले दो इंटरफेस को भी बढ़ाता है। तब हमने एक वर्ग घोषित किया है जो केवल इंटरफ़ेस c को लागू करता है, लेकिन जैसा कि इंटरफ़ेस c पिछले दो इंटरफ़ेस का विस्तार करता है, 'इंटरफ़ेस a', 'इंटरफ़ेस b' और 'इंटरफ़ेस c' में घोषित सभी विधियाँ कक्षा में उपयोग के लिए उपलब्ध हैं। डी। इस प्रकार हम इंटरफ़ेस को लागू करके कई विरासत प्राप्त कर सकते हैं।