यदि मैं नीचे दिए गए कोड के समान नोड्स की वृक्ष संरचना का उपयोग कर रहा हूं, तो क्या मुझे परिपत्र संदर्भ के बारे में चिंता करने की ज़रूरत है?
मैंने पढ़ा है कि PHP मेमोरी आवंटन तंत्र का उपयोग करता है जो परिपत्र संदर्भों में शामिल होने पर कचरा कलेक्टर के लिए जीवन को बहुत कठिन बना सकता है।PHP की परिपत्र संदर्भ समस्या का स्तर क्या है और क्या मुझे इसके बारे में चिंता करनी चाहिए?
क्या मैं जानना चाहता हूँ है:
- मेरी पेड़ केवल कुछ नोड्स के होते हैं, तो 25 कहते हैं, यह एक समस्या है?
- क्या स्मृति को स्क्रिप्ट के अंत में मुक्त किया जाएगा या क्या मैं धीरे-धीरे सर्वर के लिए समस्या पैदा कर रहा हूं?
- स्क्रिप्ट निष्पादन के दौरान इस समस्या का क्या असर होगा?
- मैन्युअल रूप से संदर्भों को नष्ट करने से समस्या हल हो जाएगी और क्या मुझे हमेशा ऐसा करना चाहिए?
class Node {
private $parent;
private $children;
function addChild(Node $child) {
$this->children[] = $child;
$child->setParent($this);
}
function setParent($parent) {
$this->parent = $parent;
}
}
//eg
$node0 = new Node;
$node1 = new Node;
// nodes 1 and 2 have a circular reference to each other
$node0->addChild($node1);
मुझे लगता है कि यह ठीक होना चाहिए। AFAIK, इस प्रकार PHP डीओएम कार्यान्वयन काम करता है। –