php इन्टरफेस बनाम सार वर्ग

PHP मा एब्स्ट्र्याक्ट क्लास के हो?
PHP मा विशेषताहरू

In this extensive lesson, we will delve into the complexities of PHP’s interface functionality. From In this post, we’ll look at the differences and similarities between two crucial PHP concepts: interfaces vs abstract classes. We’ll look at the syntax and use cases for each, as well as the benefits and drawbacks of utilizing interfaces and abstract classes in your code. By the conclusion of this session, you’ll know when to use PHP interfaces and when to utilize abstract classes, as well as how to apply them in your programming projects.

OOP मा एक इन्टरफेस के हो?

  • इन्टरफेस एउटा वर्ग हो जसमा अमूर्त विधिहरू मात्र समावेश हुन्छन्।
  • इन्टरफेस वर्ग प्रयोग गरेर, हामी निर्दिष्ट गर्न सक्छौं कि कक्षाले कुन विधिहरू लागू गर्नुपर्छ जसले इन्टरफेस विस्तार गर्दछ।
  • अमूर्त वर्गको विपरीत, तपाईंले विधिहरूसँग सारहरू लेख्न आवश्यक पर्दैन किनभने इन्टरफेसमा केवल सार विधिहरू हुन सक्छ।
  • इंटरफेस कीवर्ड इन्टरफेस वर्ग घोषणा गर्न प्रयोग गरिन्छ। PHP मा इन्टरफेस क्लासको निम्न सिन्ट्याक्स हेर्नुहोस्।
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

यद्यपि अमूर्त वर्गहरू र इन्टरफेसहरू धेरै समान छन् तिनीहरू तार्किक रूपमा एकअर्काबाट भिन्न छन्।

PHP मा इन्टरफेस र एब्स्ट्र्याक्ट कक्षाहरू बीचको भिन्नता

ईन्टरफेस वर्गसार वर्ग
गुणहरू समावेश गर्न सकिँदैनगुणहरू समावेश गर्न सकिन्छ
सबै विधिहरू सार हुन् र विधिहरूसँगै सार कीवर्ड आवश्यक पर्दैन।Con मा अमूर्त र गैर-अमूर्त विधिहरू समावेश छन्। एब्स्ट्र्याक्ट मेथड घोषणा गर्नको लागि एब्स्ट्र्याक्ट कीवर्ड आवश्यक छ।
एक वर्गले अर्को वर्गबाट ​​इनहेरिट गरी इन्टरफेस कार्यान्वयन गर्न सक्छ। यसको मतलब बाल कक्षाले एकै समयमा इन्टरफेस लागू गर्न सक्छ।बाल वर्ग (अर्को वर्गबाट ​​वंशानुगत), अमूर्त वर्ग लागू गर्न सक्दैन।
पहुँच परिमार्जकहरूको सन्दर्भमा सबै विधिहरू सार्वजनिक हुनुपर्छ।विधिहरू सार्वजनिक वा पहुँच परिमार्जकहरूको सन्दर्भमा सुरक्षित हुन सक्छन्।
इन्टरफेस बनाम सार कक्षाहरू

PHP मा इन्टरफेस को उदाहरण

इंटरफेस कुञ्जी शब्द PHP मा इन्टरफेस घोषणा गर्न प्रयोग गरिन्छ। PHP मा इन्टरफेस को निम्न कार्यान्वयन हेर्नुहोस्।

<?php
interface Unit {
  public function standard_unit();
}

class Weight implements Unit {
  public function standard_unit() {
    echo "Kg";
  }
}

$weight= new Weight();
$weight->standard_unit();
?>
  • माथिको उदाहरणमा। हामी एक इन्टरफेस वर्ग एकाइ सिर्जना गर्छौं जसमा विधि मानक_इकाई समावेश छ।
  • त्यसपछि हामी अर्को कक्षा सिर्जना गर्छौं वजन कि लागू गर्दछ एकाइ इन्टरफेस र यसमा मानक_इकाई विधि परिभाषित गर्दछ।
  • माथिको उदाहरणबाट, हामी देख्न सक्छौं कि इन्टरफेस प्रयोग गर्ने क्लासले यसको विधिलाई ओभरराइड गर्न सक्छ र यसलाई आफ्नै तरिकाले प्रयोग गर्न सक्छ। मानौं हामीसँग अर्को वर्ग लम्बाइ छ, यसले मानक_इकाई विधि आफ्नै तरिकाले प्रयोग गर्न सक्छ।
  • हामी तर्क लेख्न सक्छौं जसले SI एकाइहरू भएका सबै भौतिक मात्राहरूमा काम गर्नेछ। निम्न उदाहरण हेर्नुहोस्।
<?php
// Interface definition
interface Unit {
  public function standard_unit();
}

// Class definitions
class Weight implements Unit {
  public function makeSound() {
    echo " kg";
  }
}

class Length implements Unit {
  public function standard_unit() {
    echo " meter";
  }
}

class Temperature implements Unit {
  public function standard_unit() {
    echo " celcius";
  }
}

// Create a list of Physical Quanitites
$weight = new Weight();
$length = new Length();
$temperature = new Temperature();
$quantities= array($weight, $length, $temperature);

// Tell the quantities to use its standard unit
foreach($quantities as $quantities) {
  $quantitiy->standard_unit();
}
?>
  • माथिको उदाहरणमा, हामी अघिल्लो उदाहरणमा जस्तै समान वर्गहरू सिर्जना गर्छौं।
  • तौल, लम्बाइ र तापमान वर्गहरूले समान इन्टरफेस लागू गर्दछ र मानक_इकाई विधि आफ्नै तरिकामा प्रयोग गर्न सक्छ। त्यसोभए, हामी यी क्लासका वस्तुहरूको एरे बनाउँछौं र तिनीहरूलाई मानक_इकाई विधि वर्ग गर्न एक-एक गरेर लुप गर्छौं।

आधिकारिक PHP 8 इन्टरफेस दस्तावेज को सन्दर्भ।

PHP मा एब्स्ट्र्याक्ट क्लास के हो?
PHP मा विशेषताहरू
en English
X
माथि स्क्रोल गर्नुहोस्