या तो प्रलेखन है नहीं होता है "सख्त मानकों केवल चर में ... संदर्भ द्वारा पारित किया जाना चाहिए" त्रुटि में या फ़ंक्शन त्रुटि में है। ईमानदारी से, मैं किसी भी कारण से नहीं देख सकता कि क्यों निकालने के संदर्भ में एक सरणी पारित करने की आवश्यकता होगी, लेकिन किसी ने EXTR_REFS निकालने के प्रकार ध्वज को इंगित किया।
PHP कोड (5.3.2) के मेरे स्थानीय सत्यापन को देखते हुए, मैं देख सकता हूं कि extract()
के लिए फ़ंक्शन परिभाषा संदर्भ द्वारा पास इंगित नहीं करती है।
function extract (array $var_array, $extract_type = null, $prefix = null)
sort()
को देखते हुए परिभाषा संदर्भ द्वारा शो पास करता है:
function sort (array &$array, $sort_flags = null)
यही कारण है कि मैं extract()
पर सख्त त्रुटि नहीं मिलता है और मैं इसे sort()
पर देखते हैं।
मुझे लगता है कि php.net पर प्रलेखन पुराना है या सिर्फ सादा गलत है। extract()
एक पुराना पिल्ला है ... मुझे यकीन नहीं है कि जिस दिन फ़ंक्शन परिभाषा वास्तव में &$var_array
इंगित करती है या नहीं।
दूसरा विकल्प फ़ंक्शन परिभाषा किसी बिंदु पर गड़बड़ हो गई है और दस्तावेज सही ढंग से इंगित करता है कि यह कैसे होना चाहिए, EXTR_REFS का एक अतिरिक्त प्रकार का झंडा होने पर यह मामला हो सकता है (यह स्थिर अभी भी मौजूद है)।
कृपया इसे एक बग पर विचार करें और इसकी रिपोर्ट करें। एक संबंधित बग हो सकता है: https://bugs.php.net/bug.php?id=55222 एक संबंधित प्रश्न हो सकता है: http://stackoverflow.com/q/6726589/367456 – hakre
अच्छी तरह से मुझे वास्तव में परवाह नहीं है इसके बारे में, लेकिन यह दिखाता है कि मैन्युअल पर भरोसा नहीं किया जा सकता है: पी क्या होगा अगर 'मरने()' हमें स्क्रिप्ट के बजाय मारता है? :( – thelolcat
लोलकैली, इसे आसान बनाएं। आप हमेशा दस्तावेज़ों पर भरोसा नहीं कर सकते हैं। जो भी भरोसेमंद मतलब है बीटीडब्ल्यू, मुझे लगता है कि यह छोटी गड़बड़ी आपको मार नहीं रही है, है ना? और अगर आपको परवाह नहीं है, तो कृपया मत पूछें – hakre