PHP Traits

PHP

PHP Traits

PHP केवल सिंगल inheritance को सपोर्ट करता है, जैसा कि हम जानते हैं, सिंगल inheritance में class केवल एक सिंगल क्लास से ही inherit कर सकता है जिसे हमने PHP Inheritance चैप्टर में देखा था।

कोड का reuse ही object-oriented programming के सबसे महत्वपूर्ण पहलुओं में से एक है। इसीलिए सिंगल inheritance की समस्याओं को दूर करने के लिए PHP में traits का इस्तेमाल किया जाता है।

PHP Traits
Syntax
<?php
trait TraitName {
  // some code...
}
?>

किसी class में एक trait का उपयोग करने के लिए, use कीवर्ड का उपयोग करना होता है।

उदाहरण: PHP Traits
<?php
trait greeting{
  public function hello(){
    echo "Hello everyone ";
  }
}

class ClassA{
  use greeting;
}

$obj = new ClassA();
$obj->hello();
?>

ऊपर दिए गए उदाहरण को समझते है

1st : उपरोक्त उदाहरण में, हमने एक trait बनाया greeting नाम का।

2nd : फिर, हम एक क्लास बनाते हैं ClassA नाम का। यहाँ पर Class, traits का उपयोग करता है और अब traits की सभी मेथड ClassA में उपलब्ध होंगी।

3rd : यदि अन्य class को भी hello() फ़ंक्शन का उपयोग करने की आवश्यकता है, तो बस उन क्लास में greeting traits का उपयोग करना होगा।

4th : इससे कोड duplication कम हो जाता है, क्योंकि एक ही मेथड को बार-बार पुनः घोषित करने की आवश्यकता नहीं होती है

PHP - Using Multiple Traits

उदाहरण: PHP Traits
<?php
trait greeting{
  public function hello(){
    echo "Hello everyone <br>";
  }
}

trait goodbye{
  public function bye(){
    echo "Bye Bye everyone <br>";
  }
}

class ClassA{
  use greeting;
}

class ClassB{
  use greeting, goodbye;
}

$test = new ClassA();
$test->hello();
echo "<br>";
 
$test2 = new ClassB();
$test2->hello();
$test2->bye();
?>
Output
Hello everyone

Hello everyone
Bye Bye everyone

ऊपर दिए गए उदाहरण को समझते हैं:

यहां, हमने दो traits घोषित किया हैं: greeting और goodbye फिर, हमने दो क्लास बनाया: ClassA और ClassB. प्रथम क्लास (ClassA) greeting traits का उपयोग करता है, और दूसरा क्लास (ClassB) greeting और goodbye दोनों traits का उपयोग करता है (multiple traits अल्पविराम यानि comma द्वारा अलग किए जाते हैं)।

Article By: Brajlal Prasad
Created on: 09 Jul 2023  876  Views
 Print Article
Report Error

If you want to report an error, or any suggestion please send us an email to [email protected]