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

पीएचपी कंस्ट्रक्टर्स और डिस्ट्रक्टर्स

परिचय

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

सिंटैक्स

__construct ([ mixed $args = "" [, $... ]] ) : void

कन्स्ट्रक्टर उदाहरण

यह उदाहरण दिखाता है कि ऑब्जेक्ट घोषित होने पर कंस्ट्रक्टर स्वचालित रूप से निष्पादित हो जाता है

उदाहरण

<?php
class myclass{
   function __construct(){
      echo "object initialized";
   }
}
$obj=new myclass();
?>

आउटपुट

यह निम्नलिखित परिणाम देगा। -

object initialized

तर्कों वाला कंस्ट्रक्टर

क्लास गुण कंस्ट्रक्टर द्वारा तर्कों के साथ आरंभ किए जाते हैं

उदाहरण

<?php
class rectangle{
   var $height;
   var $width;
   function __construct($arg1, $arg2){
      $this->height=$arg1;
      $this->width=$arg2;
   }
   function show(){
      echo "Height=$this->height Width=$this->width";
   }
}
$obj=new rectangle(10,20);
$obj->show();
?>

आउटपुट

यह निम्नलिखित परिणाम देगा। -

Height=10 Width=20

विरासत में निर्माता

यदि पैरेंट क्लास में कंस्ट्रक्टर परिभाषित है, तो इसे चाइल्ड क्लास के कंस्ट्रक्टर के भीतर parent::__construct द्वारा कॉल किया जा सकता है। . हालांकि, अगर चाइल्ड क्लास कंस्ट्रक्टर को परिभाषित नहीं करता है, तो इसे बेस क्लास से समान विरासत में मिलता है।

उदाहरण

<?php
class a{
   function __construct(){
      echo "this is a constructor of base class\n";
   }
}
class b extends a{
   function __construct(){
      parent::__construct();
      echo "this a constructor class b\n";
   }
}
class c extends a {
   //
}
$a=new a();
$b=new b();
$c=new c();
?>
को बढ़ाता है

आउटपुट

यह निम्नलिखित परिणाम देगा। -

this is a constructor of base class
this is a constructor of base class
this a constructor class b
this is a constructor of base class

विनाशक

विनाशक स्वचालित रूप से एक विधि है जैसे ही कचरा संग्रहकर्ता को पता चलता है कि किसी विशेष वस्तु का कोई और संदर्भ नहीं है। PHP में, डिस्ट्रक्टर मेथड को __destruct . नाम दिया गया है . शटडाउन अनुक्रम के दौरान भी, वस्तुओं को नष्ट कर दिया जाएगा। विनाशक विधि कोई तर्क नहीं लेती है, न ही यह कोई डेटा प्रकार लौटाती है

उदाहरण

<?php
class myclass{
   function __construct(){
      echo "object is initialized\n";
   }
   function __destruct(){
      echo "object is destroyed\n";
   }
}
$obj=new myclass();
?>

आउटपुट

यह निम्नलिखित परिणाम दिखाएगा

object is initialized
object is destroyed

  1. PHP में फाइनल क्लास और फाइनल मेथड को समझाइए।

    अंतिम कीवर्ड PHP5 द्वारा ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग कॉन्सेप्ट से संबंधित है। लेकिन फाइनल में जाने से पहले, हमें यह सुनिश्चित करना होगा कि हमें विरासत की अवधारणा की अच्छी समझ है। इनहेरिटेंस में, हम एक क्लास को दूसरे क्लास से इनहेरिट कर सकते हैं। साथ ही, हम मूल रूप से प्रदान किए गए व्यवहार को प्र

  1. सी # में निजी कंस्ट्रक्टर और सिंगलटन क्लासेस

    एक निजी कंस्ट्रक्टर का उपयोग केवल स्थिर सदस्य वाली कक्षाओं में किया जाता है जैसा कि नीचे दिखाया गया है - class Demo {    // private constructor    private Demo() { }    public static a = 10; } सिंगलटन क्लास में सामान्य तरीके होते हैं और आप इसे इंस्टेंस का उपयोग करके क

  1. जावा में कंस्ट्रक्टर क्या हैं?

    एक निर्माता जावा में वाक्य रचनात्मक रूप से विधियों के समान है। अंतर यह है कि कंस्ट्रक्टर का नाम क्लास के नाम के समान होता है और इसका कोई रिटर्न टाइप नहीं होता है। आपको एक कंस्ट्रक्टर को कॉल करने की आवश्यकता नहीं है, इसे तात्कालिकता के समय परोक्ष रूप से लागू किया जाता है। एक कंस्ट्रक्टर का मुख्य उद्