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

PHP WeakReference क्लास

परिचय

कमजोर रेफरेंस के साथ, किसी ऑब्जेक्ट का रेफरेंस बनाए रखना संभव है जो ऑब्जेक्ट को नष्ट होने से नहीं रोकता। कैश जैसी संरचनाओं को लागू करने के लिए कमजोर रेफरेंस का उपयोग किया जा सकता है।

एक कमजोर रेफरेंस सामान्य रेफरेंस के समान है, सिवाय इसके कि यह गार्बेज कलेक्टर को ऑब्जेक्ट को कलेक्ट करने से नहीं रोकता। यदि उस ऑब्जेक्ट के मजबूत रेफरेंस नहीं मिलते, तो यह तुरंत मेमोरी से हटा दिया जाएगा। इस तरह कैश के अधिकांश लाभों को मेमोरी समस्याओं के बिना लागू करना संभव है।

WeakReference क्लास PHP 7.4 में पेश की गई है। इस संस्करण से पहले, वही प्रभाव weakref एक्सटेंशन द्वारा प्राप्त किया जाता था। WeakReference क्लास की निम्न संरचना है:

सिंटैक्स

WeakReference {
    /* Methods */
    public __construct ( void )
    public static create ( object $referent ) : WeakReference
    public get ( void ) : ?object
}

मेथड्स

  • public WeakReference::__construct ( void ) - WeakReference क्लास के इंस्टेंटिएशन को रोकता है। इसे फैक्टरी मेथड WeakReference::create() से इंस्टेंटिएट किया जा सकता है।
  • public static WeakReference::create ( object $referent ) : WeakReference - एक नया WeakReference बनाता है।
  • public WeakReference::get ( void ) : ?object - कमजोर रेफरेंस किए गए ऑब्जेक्ट को प्राप्त करता है। यदि ऑब्जेक्ट पहले ही नष्ट हो चुका है, तो NULL लौटाता है।

जनरेटर उदाहरण

निम्न उदाहरण में myclass का ऑब्जेक्ट है। इसके ऑब्जेक्ट का WeakReference एक रेफरेंस दिखाता है। ऑब्जेक्ट को फिर अनसेट किया जाता है। अब WeakReference NULL लौटाता है।

उदाहरण

<?php
class myclass {
    function Hello() {
        echo "Hello";
    }
}
$obj = new myclass();
$ref = WeakReference::create($obj);
var_dump($ref->get());
unset($obj);
var_dump($ref->get());
?>

आउटपुट

object(myclass)#1 (0) { }
NULL

उपयोग के मामले: कैश, ऑब्जर्वर पैटर्न, सर्कुलर रेफरेंस रोकना, बड़ी ऑब्जेक्ट को मेमोरी में अनावश्यक रूप से रखे बिना संदर्भित करना।

  1. - C# में OrderedDictionary क्लास - प्रॉपर्टीज़, मेथड्स और उदाहरण

    OrderedDictionary क्लास (System.Collections.Specialized) की-वैल्यू पेयर्स का संग्रह है जो इंसर्शन क्रम बनाए रखते हुए कुंजी और इंडेक्स दोनों द्वारा एक्सेस प्रदान करती है। OrderedDictionary प्रॉपर्टीज़ क्रमांकप्रॉपर्टीविवरण 1Countकी-वैल्यू पेयर्स की संख्या प्राप्त करता

  1. - C# में Object क्लास

    System.Object (या object) C# में सभी क्लासेस का अल्टीमेट बेस क्लास है। प्रत्येक टाइप प्रत्यक्ष या अप्रत्यक्ष रूप से इससे विरासत में मिलता है। Object क्लास के मुख्य मेथड्स मेथडविवरण Equals(Object)निर्दिष्ट ऑब्जेक्ट वर्तमान ऑब्जेक्ट के बराबर है या नहीं Equals(Object, Object)दो ऑब्जेक्ट इंस्टेंसेस बरा

  1. - C# में Stack क्लास

    Stack क्लास ऑब्जेक्ट्स के लास्ट-इन, फर्स्ट-आउट कलेक्शन को दर्शाता है। इसका उपयोग तब किया जाता है जब आपको आइटम्स का लास्ट-इन, फर्स्ट-आउट एक्सेस चाहिए। Stack क्लास की प्रॉपर्टी निम्नलिखित है - Count - स्टैक में एलिमेंट्स की संख्या प्राप्त करता है। Stack क्लास के मेथड्स निम्नलिखित हैं - Sr.No. मेथ