निम्न कोड में:डेटा मानचित्र के रूप में SplObjectStorage का उपयोग करके, क्या आप एक म्यूटेबल सरणी डेटा के रूप में उपयोग कर सकते हैं?
$storage = new \SplObjectStorage();
$fooA = new \StdClass();
$fooB = new \StdClass();
$storage[$fooA] = 1;
$storage[$fooB] = array();
$storage[$fooA] = 2;
$storage[$fooB][] = 'test';
मैं $storage[$fooA]
1
होने की अपेक्षा करेंगे, जो यह है। मैं $storage[$fooB]
array('test')
होने की अपेक्षा भी करूंगा, जो यह नहीं है। यह भी एक सूचना है कि पढ़ता है, चलाता है "SplObjectStorage की अतिभारित तत्व के अप्रत्यक्ष संशोधन में कोई प्रभाव नहीं है ..."
मुझे लगता है कि यह इसलिए होता है क्योंकि SplObjectStorage
में ArrayAccess
के कार्यान्वयन संदर्भ द्वारा मान वापस नहीं करता है।
क्या डेटा मैप के रूप में SplObjectStorage
का उपयोग करने का कोई तरीका है जहां कुंजी ऑब्जेक्ट्स और मान म्यूटेबल सरणी हैं? क्या इस तरह के काम करने के लिए कोई अन्य व्यवहार्य विकल्प हैं?