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

पीएचपी लक्षण

परिचय

PHP एकाधिक विरासत का समर्थन नहीं करता है। लक्षणों . की विशेषता से यह सीमा कुछ हद तक दूर हो जाती है . यह कोड पुन:उपयोग का एक तंत्र है। विशेषता की परिभाषा वर्ग के समान है। हालाँकि, इसे सीधे तत्काल नहीं किया जा सकता है। इसके बजाय, एक विशेषता की कार्यक्षमता एक वर्ग को उपयोग . द्वारा उपलब्ध कराई जाती है खोजशब्द। इसलिए, एक वर्ग एक विशेषता में परिभाषित विधियों का लाभ उठा सकता है या उन्हें ओवरराइड भी कर सकता है। यह किसी भी अन्य मूल वर्ग के अतिरिक्त है जिसे यह विरासत में मिल सकता है।

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

सिंटैक्स

<?php
trait testtrait{
   public function test1(){
      //body of method
   }
}
//using trait
class testclass{
   use testtrait
   //rest of members in class
}
?>

उदाहरण

निम्नलिखित कोड में, एक वर्ग में दो विधियों के साथ एक विशेषता का उपयोग किया जाता है जो किसी एक विधि को ओवरराइड करता है

उदाहरण

<?php
//definition of trait
trait testtrait{
   public function test1(){
      echo "test1 method in trait\n";
   }
   public function test2(){
      echo "test2 method in trait\n";
   }
}
//using trait
class testclass{
   use testtrait;
   public function test1(){
      echo "test1 method overridden\n";
   }
}
$obj=new testclass();
$obj->test1();
$obj->test2();
?>

आउटपुट

आउटपुट नीचे जैसा है -

test1 method overridden
test2 method in trait

बाल वर्ग में विशेषता

यह विशेषता का मुख्य लाभ है। माता-पिता वाला वर्ग भी एक विशेषता का उपयोग कर सकता है और इसकी विधि को ओवरराइड करना चुन सकता है। इस प्रकार प्रभावी ढंग से एकाधिक विरासत प्राप्त करना। इस सुविधा का उदाहरण नीचे दिया गया है -

उदाहरण

<?php
//definition of trait
trait testtrait{
   public function test1(){
      echo "test1 method in trait\n";
   }
}
//parent class
class parentclass{
   public function test2(){
      echo "test2 method in parent\n";
   }
}
//using trait and parent class
class childclass extends parentclass{
   use testtrait;
   public function test1(){
      echo "parent method overridden\n";
   }
   public function test2(){
      echo "trait method overridden\n";
   }
}
$obj=new childclass();
$obj->test1();
$obj->test2();
?>

आउटपुट

उपरोक्त कोड निम्नलिखित परिणाम उत्पन्न करता है -

parent method overridden
trait method overridden

इंटरफ़ेस के साथ विशेषता

एक इंटरफ़ेस को लागू करने वाला एक वर्ग होना संभव है, अन्य मूल वर्ग का विस्तार करना और एक ही समय में विशेषता का उपयोग करना

उदाहरण

<?php
//definition of trait
trait mytrait{
   public function test1(){
      echo "test1 method in trait1\n";
   }
}
class myclass{
   public function test2(){
      echo "test2 method in parent class\n";
   }
}
interface myinterface{
   public function test3();
}
//using trait and parent class
class testclass extends myclass implements myinterface{
   use mytrait;
   public function test3(){
      echo "implementation of test3 method\n";
   }
}
$obj=new testclass();
$obj->test1();
$obj->test2();
$obj->test3();
?>

आउटपुट

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

test1 method in trait1
test2 method in parent class
implementation of test3 method

संघर्ष समाधान

यदि कोई वर्ग एक सामान्य विधि के साथ दो लक्षणों का उपयोग करता है, तो उनके विरोध को स्कोप रिज़ॉल्यूशन ऑपरेटर और बजाय द्वारा हल किया जाता है कीवर्ड

उदाहरण

<?php
trait trait1{
   public function test1(){
      echo "test1 method in trait1\n";
   }
   public function test2(){
      echo "test2 method in trait1\n";
   }
}
trait trait2{
   public function test1(){
      echo "test1 method in trait2\n";
   }
   public function test2(){
      echo "test2 method in trait2\n";
   }
}
//using trait and parent class
class testclass {
   use trait1, trait2{
      trait1::test1 insteadof trait2;
      trait2::test2 insteadof trait1;
   }
}
$obj=new testclass();
$obj->test1();
$obj->test2();
?>

आउटपुट

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

test1 method in trait1
test2 method in trait2

  1. पीएचपी टैग

    परिभाषा और उपयोग एक PHP कोड स्क्रिप्ट एक टेक्स्ट फ़ाइल है जिसमें .php एक्सटेंशन होता है और इसे वेब सर्वर पर संग्रहीत किया जाता है। सर्वर पर PHP पार्सर वर्णों के विशेष अनुक्रम की तलाश करता है

  1. पीएचपी पीआई () समारोह

    परिभाषा और उपयोग पाई () फ़ंक्शन गणितीय स्थिरांक का मान लौटाता है। यह एक फ्लोट मान 3.14159265359 देता है जो PHP में परिभाषित पूर्वनिर्धारित स्थिरांक के बराबर है - M_PI सिंटैक्स pi ( void ) : float पैरामीटर इस फ़ंक्शन के लिए किसी पैरामीटर की आवश्यकता नहीं है रिटर्न वैल्यू PHP pi() फ़ंक्शन गणितीय

  1. PHP में लक्षण क्या है?

    5.4 PHP संस्करण में विशेषता को PHP ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में पेश किया गया है। एक विशेषता वर्ग की तरह है, हालांकि यह केवल सूक्ष्म और विश्वसनीय तरीके से समूहबद्ध करने के तरीकों के लिए है। इसे अपने आप किसी विशेषता को तत्काल करने की अनुमति नहीं है। एकल वंशानुक्रम की समस्याओं को दूर करने के लिए