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

PHP में कमजोर मैप्स क्या हैं?

कमजोर मानचित्र PHP 7.4 में जोड़े गए थे। इसका उपयोग वस्तुओं को हटाने या हटाने के लिए किया जा सकता है जब कैश ऑब्जेक्ट इकाई वर्गों को संदर्भित करता है। यह उन वस्तुओं का संदर्भ देता है, जो एकत्रित स्मृति कचरे से वस्तुओं से नहीं बचते हैं। PHP 8 में, कमजोर नक्शे हमें किसी भी मेमोरी को लीक किए बिना, वस्तुओं से जुड़े यादृच्छिक डेटा को स्टोर करने की अनुमति देते हैं।

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

हम कह सकते हैं कि एक कमजोर नक्शा स्वचालित कचरा संग्रहण प्रक्रिया के रूप में काम करता है। जब भी कोई वेरिएबल हटा दिया जाता है, PHP जाँच करेगा कि क्या कोई वेरिएबल अभी भी उस ऑब्जेक्ट को संदर्भित कर रहा है। यदि वेरिएबल रेफरेंसिंग नहीं कर रहा है, तो PHP उस ऑब्जेक्ट को सुरक्षित रूप से हटा देगा। इस प्रक्रिया को कचरा संग्रह . कहा जाता है ।

उदाहरण:कमजोर मैप्स PHP 8

<?php
   class WeakExample {
      public WeakMap $cache;
      public function __construct() {
         $this->cache = new WeakMap();
      }
      public function getCaching(object $obj) {
         return $this->cache[$obj] ??= $this->computeSomethingExpensive($obj);
      }
      public function computeSomethingExpensive(object $obj) {
         print_r("Object called");
         return rand(1, 100);
      }
   }
   $cacheObject = new stdClass;
   $obj = new WeakExample;

   $obj->getCaching($cacheObject);
   $obj->getCaching($cacheObject);
   print_r(count($obj->cache));

   unset($cacheObject); // unsetting the objects and Weak Maps frees up memory
   print_r(count($obj->cache));
?>

आउटपुट

Object called 1 0

  1. PHP फाइल क्या है?

    .PHP फ़ाइल एक्सटेंशन वाली फ़ाइल एक PHP स्रोत कोड फ़ाइल है जिसमें हाइपरटेक्स्ट प्रीप्रोसेसर कोड होता है। इन्हें अक्सर वेब पेज फ़ाइलों के रूप में उपयोग किया जाता है जो आमतौर पर वेब सर्वर पर चलने वाले PHP इंजन से HTML उत्पन्न करते हैं। HTML सामग्री जो PHP इंजन कोड से बनाता है वह वेब ब्राउज़र में देखी

  1. सी # में नामस्थान क्या हैं?

    एक नाम स्थान नामों के एक सेट को दूसरे से अलग रखने का तरीका प्रदान करने के लिए है। नेमस्पेस की परिभाषा कीवर्ड नेमस्पेस से शुरू होती है और उसके बाद नेमस्पेस नाम इस प्रकार है - namespace namespace_name {    // code declarations } नेमस्पेस परिभाषित करें - namespace namespace_name {   &nb

  1. फ़ाइल समावेशन और मनमाना कोड निष्पादन क्या हैं?

    फ़ाइल समावेशन और मनमाना कोड निष्पादन: इस महीने की शुरुआत में, वर्डप्रेस पर बनी एक हवाई जहाज की टिकट वेबसाइट को हैक कर लिया गया था, जिससे सैकड़ों हजारों आगंतुकों का व्यक्तिगत डेटा उजागर हो गया था। हैकर्स हैक क्यों करते हैं, इस पर पहले के एक पोस्ट में, हमने उन सभी कारणों पर चर्चा की, जिसमें हैकर्स हैक