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

पीएचपी वस्तु इंटरफेस

परिचय

इंटरफ़ेस ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की एक महत्वपूर्ण विशेषता है जिसके द्वारा किसी वर्ग द्वारा कार्यान्वित की जाने वाली विधियों को निर्दिष्ट करना संभव है, यह परिभाषित किए बिना कि उन्हें कैसे कार्यान्वित किया जाना चाहिए।

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

सिंटैक्स

<?php
interface testinterface{
   public function testmethod();
}
class testclass implements testinterface{
   public function testmethod(){
      echo "implements interfce method";
   }
}
?>

इंटरफ़ेस से सभी विधियों को कार्यान्वयन वर्ग द्वारा परिभाषित किया जाना चाहिए, अन्यथा PHP पार्सर अपवाद फेंकता है

उदाहरण

<?php
interface testinterface{
   public function test1();
   public function test2();
}
class testclass implements testinterface{
   public function test1(){
      echo "implements interface method";
   }
}
$obj=new testclass()
?>

आउटपुट

त्रुटि नीचे दिखाई गई है -

PHP Fatal error: Class testclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testinterface::test2)

विस्तार योग्य इंटरफ़ेस

एक सामान्य वर्ग की तरह, विस्तारित . का उपयोग करके एक इंटरफ़ेस भी इनहेरिट किया जा सकता है कीवर्ड।

निम्नलिखित उदाहरण में, मूल वर्ग में दो अमूर्त विधियाँ हैं, जिनमें से केवल एक को बाल वर्ग में पुनर्परिभाषित किया गया है। इसके परिणामस्वरूप त्रुटि इस प्रकार होती है -

उदाहरण

<?php
interface testinterface{
   public function test1();
}
interface myinterface extends testinterface{
   public function test2();
}
class testclass implements myinterface{
   public function test1(){
      echo "implements test1 method";
   }
   public function test2(){
      echo "implements test2 method";
   }
}
?>

इंटरफ़ेस का उपयोग करते हुए एकाधिक वंशानुक्रम

PHP विस्तारित खंड में एक से अधिक वर्गों की अनुमति नहीं देता है। हालांकि, चाइल्ड क्लास को एक या एक से अधिक इंटरफेस को लागू करने की अनुमति देकर मल्टीपल इनहेरिटेंस हासिल किया जा सकता है

निम्नलिखित उदाहरण में, myclass कई वंशानुक्रम प्राप्त करने के लिए टेस्टक्लास का विस्तार करता है और टेस्टइंटरफेस को लागू करता है

उदाहरण

<?php
interface testinterface{
   public function test1();
}
class testclass{
   public function test2(){
      echo "this is test2 function in parent class\n";
   }
}
class myclass extends testclass implements testinterface{
   public function test1(){
      echo "implements test1 method\n";
   }
}
$obj=new myclass();
$obj->test1();
$obj->test2();
?>

आउटपुट

यह निम्नलिखित आउटपुट देगा -

implements test1 method
this is test2 function in parent class

इंटरफ़ेस उदाहरण

उदाहरण

<?php
interface shape{
   public function area();
}
class circle implements shape{
   private $rad;
   public function __construct(){
      $this->rad=5;
   }
   public function area(){
      echo "area of circle=" . M_PI*pow($this->rad,2) ."\n";
   }
}
class rectangle implements shape{
   private $width;
   private $height;
   public function __construct(){
      $this->width=20;
      $this->height=10;
   }
   public function area(){
      echo "area of rectangle=" . $this->width*$this->height ."\n";
   }
}
$c=new circle();
$c->area();
$r=new rectangle();
$r->area();
?>

आउटपुट

उपरोक्त स्क्रिप्ट निम्नलिखित परिणाम उत्पन्न करती है

area of circle=78.539816339745
area of rectangle=200

  1. PHP में is_a () फ़ंक्शन

    PHP में is_a () फ़ंक्शन यह जांचता है कि क्या वस्तु इस वर्ग की है या उसके माता-पिता में से एक के रूप में यह वर्ग है। यदि ऑब्जेक्ट इस वर्ग का है या इसके माता-पिता में से एक के रूप में यह वर्ग है, तो फ़ंक्शन TRUE लौटाता है, अन्यथा FALSE। सिंटैक्स is_a(object, class) पैरामीटर ऑब्जेक्ट -परीक्षित वस्त

  1. PHP में get_class () फ़ंक्शन

    get_class () फ़ंक्शन को किसी ऑब्जेक्ट के वर्ग का नाम मिलता है। यदि वस्तु कोई वस्तु नहीं है तो यह FALSE लौटाता है। यदि किसी वर्ग के अंदर वस्तु को बाहर रखा जाता है, तो उस वर्ग का नाम वापस कर दिया जाता है। सिंटैक्स get_class(object) पैरामीटर ऑब्जेक्ट - परीक्षण की गई वस्तु। आप केस के अंदर इस पैरामीट

  1. PHP में get_object_vars () फ़ंक्शन

    get_object_var() फ़ंक्शन दिए गए ऑब्जेक्ट के गुण प्राप्त करता है। यह निर्दिष्ट वस्तु के लिए परिभाषित वस्तु गुणों की एक सहयोगी सरणी देता है। सिंटैक्स get_object_vars(object) पैरामीटर ऑब्जेक्ट - एक वस्तु उदाहरण। वापसी get_object_var() फ़ंक्शन निर्दिष्ट ऑब्जेक्ट के लिए परिभाषित ऑब्जेक्ट गुणों की ए