Introduction to PHP Interfaces
एक interface द्वारा आप ऐसे methods की list specify कर सकते है जिन्हें एक class द्वारा implement करना आवश्यक होता है। Interface में define किये गए methods की कोई body नहीं होती है। Interface को implement करने वाली class द्वारा सभी methods की body provide किया जाना आवश्यक होता है। ऐसा नहीं होने पर PHP द्वारा error throw की जाती है।
Interfaces classes पर एक certain structure को force करते है। ये किसी template की तरह होते है जो classes को certain functionality के लिए bound करते है।
उदाहरण के लिए आप अपनी company के अलग अलग departments के लिए अलग अलग classes create कर रहे है। लेकिन आप ये चाहते है की एक method displayDepaName() जो departement का नाम display करता है वो सब class अनिवार्य रूप से define करे।
इस situation में आप एक interface define कर सकते है और उस interface में इस method को define कर सकते है। इसके बाद सभी classes द्वारा इस interface को implement करवा सकते है। इस interface को implement करने वाली classes के लिए ये आवश्यक हो जाएगा की वो displayDepaName() नाम का method declare करे। इसके अलावा आप और भी methods define कर सकते है जो आप चाहते है की सभी classes अनिवार्य रूप से declare करे।
एक interface में सभी methods by default abstract होते है। यदि देखा जाए तो interfaces किसी abstract class की तरह लगते है। लेकिन ऐसा बिलकुल भी नहीं है। निचे abstract classes और interfaces के बीच कुछ differences बताये जा रहे है।
एक abstract class में ये जरुरी नहीं की सभी methods abstract हो, आप normal methods भी define कर सकते है। लेकिन एक interface में सभी methods abstract होते है।
Abstract classes में आप methods public और protected visibility के साथ define कर सकते है। लेकिन interfaces में सभी methods public visibility mode के साथ ही define होते है।
Abstract class सिर्फ single और multilevel interface allow करती है। लेकिन interfaces द्वारा PHP में multiple interface implement किया जा सकता है।
किसी abstract class को inherit करते समय आप किसी method को override कर सकते है। लेकिन interfaces को implement करने के बाद उसमे define किये गए सभी methods को override करते है।
Interfaces को implement करने की बजाय आप उसे किसी abstract class की तरह extend भी कर सकते है। इसके लिए आप extends keyword use करते है।
जब आप सिर्फ abstract methods subclasses को provide करना चाहते है तो आपको interface declare करना चाहिए और जब आप abstract methods के साथ साथ regular methods भी sub classes को provide करना चाहते है तो आपको abstract classes use करनी चाहिए।
Syntax of PHP Interfaces
PHP में interfaces को interface keyword के साथ declare किया जाता है। इसका general syntax निचे दिया जा रहा है।
interfaceKeyword interfaceName
{
// Define functions without body
publicMode functionKeyword functionName1(arg-list);
publicMode functionKeyword functionName2(arg-list);
….
….
publicMode functionKeyword functionNameN(arg-list);
}
Interface के अंदर आपको किसी भी method को abstract define करने की आवश्यकता नहीं होती है, क्योंकि interface के सभी methods by default abstract होते है।
Example
निचे PHP में interface implement करना एक simple उदाहरण द्वारा समझाया जा रहा है।
<?php
interface compInterface
{
public function dispDepaName();
}
class salesDepa implements compInterface
{
public function dispDepaName()
{
echo “Sale Department<br />”;
}
//Other methods
}
class MarketingDepa implements compInterface
{
public function dispDepaName()
{
echo “Marketing Department”;
}
}
$obj1 = new salesDepa;
$obj2 = new MarketingDepa;
$obj1->dispDepaName();
$obj2->dispDepaName();
?>
ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।
PHP-interface-example-in-Hindi