परिचय
कमजोर संदर्भों के साथ, किसी वस्तु के संदर्भ को बनाए रखना संभव है जो वस्तु को नष्ट होने से नहीं रोकता है। कैश जैसी संरचनाओं को लागू करना कमजोर संदर्भ द्वारा किया जा सकता है।
एक कमजोर संदर्भ एक सामान्य संदर्भ के समान है, सिवाय इसके कि यह कचरा संग्रहकर्ता को वस्तु एकत्र करने से नहीं रोकता है। यदि उस वस्तु के मजबूत संदर्भ नहीं मिलते हैं, तो उसे तुरंत स्मृति से हटा दिया जाएगा। इस तरह कैशे के अधिकांश लाभों को बिना किसी स्मृति समस्या के कार्यान्वित करना संभव है।
कमजोर संदर्भ कक्षा को PHP 7.4 में पेश किया गया है। इस संस्करण से पहले, कमजोर . द्वारा समान प्रभाव प्राप्त किया जाता था विस्तार। कमजोर संदर्भ वर्ग में निम्नलिखित संरचना है
सिंटैक्स
WeakReference { /* Methods */ public __construct ( void ) public static create ( object $referent ) : WeakReference public get ( void ) : ?object }
तरीके
सार्वजनिक कमजोर संदर्भ::__निर्माण (शून्य) -WeakReference वर्ग की तात्कालिकता को अस्वीकार करें। इसे फ़ैक्टरी विधि WeakReference::create() से इंस्टेंट किया जा सकता है।
सार्वजनिक स्थैतिक WeakReference::create (वस्तु $referent ) :WeakReference — एक नया कमजोर संदर्भ बनाता है।
सार्वजनिक कमजोर संदर्भ::प्राप्त करें (शून्य):?वस्तु - कमजोर संदर्भित वस्तु प्राप्त करें। यदि वस्तु पहले ही नष्ट हो चुकी है, तो NULL वापस आ जाता है।
जनरेटर उदाहरण
निम्नलिखित उदाहरण में myclass की वस्तु है। कमजोर संदर्भ इसकी वस्तु के लिए एक संदर्भ दिखाता है। ऑब्जेक्ट तब अनसेट होता है। अब 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