पीएचपी ओओपी - लक्षण
पीएचपी - लक्षण क्या हैं?
PHP केवल एकल वंशानुक्रम का समर्थन करता है: एक बाल वर्ग केवल एक एकल माता-पिता से विरासत में मिल सकता है।
तो, क्या होगा यदि किसी वर्ग को एकाधिक व्यवहारों को प्राप्त करने की आवश्यकता हो? OOP लक्षण इस समस्या को हल करते हैं।
लक्षणों का उपयोग उन विधियों को घोषित करने के लिए किया जाता है जिनका उपयोग कई वर्गों में किया जा सकता है। लक्षणों में विधियाँ और अमूर्त विधियाँ हो सकती हैं जिनका उपयोग कई वर्गों में किया जा सकता है, और विधियों में कोई भी एक्सेस संशोधक (सार्वजनिक, निजी या संरक्षित) हो सकता है।
trait
कीवर्ड के साथ लक्षण घोषित किए जाते हैं :
वाक्य - विन्यास
<?php
trait TraitName {
// some code...
}
?>
किसी वर्ग में विशेषता का उपयोग करने के लिए,
use
कीवर्ड का उपयोग करें:
वाक्य - विन्यास
<?php
class MyClass {
use TraitName;
}
?>
आइए एक उदाहरण देखें:
उदाहरण
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
class Welcome {
use
message1;
}
$obj = new Welcome();
$obj->msg1();
?>
उदाहरण समझाया गया
यहां, हम एक विशेषता घोषित करते हैं: message1. फिर, हम एक वर्ग बनाते हैं: स्वागत है। वर्ग विशेषता का उपयोग करता है, और विशेषता की सभी विधियाँ कक्षा में उपलब्ध होंगी।
यदि अन्य वर्गों को msg1 () फ़ंक्शन का उपयोग करने की आवश्यकता है, तो बस उन वर्गों में संदेश 1 विशेषता का उपयोग करें। यह कोड दोहराव को कम करता है, क्योंकि एक ही विधि को बार-बार पुन: घोषित करने की आवश्यकता नहीं होती है।
PHP - एकाधिक लक्षणों का उपयोग करना
आइए एक और उदाहरण देखें:
उदाहरण
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
trait message2 {
public function msg2()
{
echo "OOP reduces code duplication!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 =
new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
उदाहरण समझाया गया
यहां, हम दो लक्षण घोषित करते हैं: संदेश 1 और संदेश 2। फिर, हम दो वर्ग बनाते हैं: स्वागत और स्वागत 2। पहला वर्ग (स्वागत) संदेश 1 विशेषता का उपयोग करता है, और दूसरा वर्ग (स्वागत 2) संदेश 1 और संदेश 2 दोनों लक्षणों का उपयोग करता है (कई लक्षण अल्पविराम से अलग होते हैं)।