Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में इंटरफेस समझाया गया

इस लेख में, हम PHP इंटरफेस का उपयोग करना सीखेंगे जो PHP ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में सबसे महत्वपूर्ण संरचनात्मक पैटर्न में से एक है।

एक इंटरफेस हमें प्रोग्राम बनाने में सक्षम बनाता है, उन पब्लिक मेथड्स को निर्दिष्ट करता है जिन्हें एक क्लास को इम्प्लीमेंट करना होगा, बिना उन विशिष्ट मेथड्स की जटिलताओं और प्रक्रिया को शामिल किए कि वे कैसे इम्प्लीमेंटेड हैं। इसका तात्पर्य है कि एक इंटरफेस मेथड नाम और आर्गुमेंट्स को परिभाषित कर सकता है, लेकिन मेथड्स की सामग्री को नहीं। इंटरफेस इम्प्लीमेंट करने वाली किसी भी क्लास को इंटरफेस द्वारा परिभाषित सभी मेथड्स को इम्प्लीमेंट करना होगा।

इंटरफेस को क्लास के समान ही परिभाषित किया जाता है, हालांकि, डिक्लेरेशन में क्लास वाक्यांश को केवल इंटरफेस कीवर्ड से बदल दिया जाता है और किसी भी मेथड की सामग्री परिभाषित नहीं होती है।

उदाहरण

आइए एक सरल उदाहरण के साथ एक इंटरफेस बनाएं और इसे इम्प्लीमेंट करें।

<?php 
    Interface MyInterface { 
        public function getName(); 
        public function getAge(); 
    } 
    class MyClass implements MyFirstInterface{ 
        public function getName() { 
            echo "My name A".'
'; } public function getAge(){ echo "My Age 12"; } } $obj = new MyClass; $obj->getName(); $obj->getAge(); ?>

आउटपुट:

My name A My Age 12

व्याख्या:

यहां हमने दो मेथड्स getName और getAge के साथ बिना किसी सामग्री के MyFirstInterface नामक एक इंटरफेस घोषित किया है। फिर क्लास 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

व्याख्या:

यहां हमने तीन इंटरफेस घोषित किए हैं यानी 'interface a', 'interface b', 'interface c'। इस मामले में इंटरफेस c पिछले दो इंटरफेस को भी एक्सटेंड करता है। फिर हमने एक क्लास घोषित की जो केवल इंटरफेस c को इम्प्लीमेंट करती है, लेकिन चूंकि इंटरफेस c पिछले दो इंटरफेस को एक्सटेंड करता है, 'interface a', 'interface b' और 'interface c' में घोषित सभी मेथड्स क्लास d में उपयोग के लिए उपलब्ध हैं। इस तरह हम इंटरफेस इम्प्लीमेंट करके मल्टीपल इनहेरिटेंस प्राप्त कर सकते हैं।

  1. - PHP में एब्स्ट्रैक्ट क्लास समझाया गया

    PHP5 अपने साथ ऑब्जेक्ट-ओरिएंटेड मॉडल लाता है, ऑब्जेक्ट-ओरिएंटेड मॉडल की कुछ अवधारणाएं हैं: क्लास, ऑब्जेक्ट, एनकैप्सुलेशन, पॉलीमॉर्फिज्म, एब्स्ट्रैक्ट और फाइनल क्लासेज, और मेथड्स, इंटरफेसेस और इनहेरिटेंस, आदि... इस लेख में, हम एब्स्ट्रैक्ट क्लास और PHP में ऑब्जेक्ट-ओरिएंटेड तकनीकों से संबंधित इसकी व

  1. - PHP में फाइनल क्लास और फाइनल मेथड समझाया गया

    फाइनल कीवर्ड PHP5 द्वारा ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग कॉन्सेप्ट से संबंधित पेश किया गया है। लेकिन इससे पहले कि हम फाइनल पर आगे बढ़ें, हमें यह सुनिश्चित करने की आवश्यकता है कि हमें इनहेरिटेंस कॉन्सेप्ट की अच्छी समझ है। इनहेरिटेंस में, हम एक क्लास को दूसरी क्लास से इनहेरिट कर सकते हैं। साथ ही, हम इ

  1. - Java में इंटरफेस (Interface)

    एक इंटरफेस Java में एक रेफरेंस टाइप है। यह एक क्लास के समान है। यह एब्स्ट्रैक्ट मेथड्स का एक संग्रह है। एक क्लास इंटरफेस को इम्प्लीमेंट करती है, जिससे इंटरफेस के एब्स्ट्रैक्ट मेथड्स विरासत में मिलते हैं। एब्स्ट्रैक्ट मेथड्स के साथ, एक इंटरफेस में कॉन्स्टेंट्स, डिफ़ॉल्ट मेथड्स, स्टेटिक मेथड्स, और न