मेरे पास मेरी ऑब्जेक्ट्स में से एक में एक रिकर्सिव लैम्ब्डा फ़ंक्शन है, और इसे ऑब्जेक्ट के mysqli कनेक्शन तक पहुंचने की आवश्यकता है। यह प्रयासलैम्बडा फ़ंक्शंस से मूल ऑब्जेक्ट तक कैसे पहुंचे?
$recfunc = function($id, $name) use($this) {
एक अनुचित गंभीर त्रुटि
Fatal error: Cannot use $this as lexical variable in C:\Users\Codemonkey1991\Desktop\workspace\melior\objects\databasemanager.php on line 88
किसी को भी मुझे कुछ संकेत दे सकता है उत्पादित?
संपादित करें: संदर्भ को स्पष्ट करने के लिए, मैं इस लैम्ब्डा फ़ंक्शन को किसी अन्य फ़ंक्शन के अंदर बनाने की कोशिश कर रहा हूं। $this
के संदर्भ में स्पष्ट रूप से लैम्ब्डा समारोह को पास करने की जरूरत नहीं है
$host = $this;
$recfunc = function($id, $name) use ($host) { ...
अरे, बस एक अतिरिक्त प्रश्न: मैं फ़ंक्शन को कॉल करने के बारे में कैसे जाउंगा? – Hubro
'$ recfunc = फ़ंक्शन ($ आईडी, $ नाम) उपयोग ($ होस्ट, और $ recfunc) {if (FOO) $ recfunc ($ id, $ name) लौटाएं; } ' –
इस त्रुटि पर bugs.php.net रिपोर्ट की जांच करने से, यह सुविधा PHP 5.4 में जोड़ा गया है। –