कुछ परिदृश्यों में, आपको कुशलतापूर्वक अन्य कार्यों के लिए क्लास विधियों को कॉलबैक के रूप में पास करने की आवश्यकता हो सकती है विशिष्ट कार्यों का निष्पादन. यह आलेख इसे प्राप्त करने के लिए विभिन्न तंत्रों के माध्यम से आपका मार्गदर्शन करता है।
किसी फ़ंक्शन को कॉलबैक के रूप में पास करने के लिए, आप सीधे इसका नाम एक स्ट्रिंग के रूप में प्रदान कर सकते हैं। हालाँकि, यह विधि क्लास विधियों पर लागू नहीं है। दूसरा। यह दृष्टिकोण एक ही कक्षा के अंदर और बाहर दोनों जगह काम करता है।
// एक ही कक्षा के अंदर $this->processSomething([$this, 'myCallback']); $this->processSomething([$this, 'myStaticCallback']); // उसी कक्षा के बाहर $myObject->processSomething([new MyClass(), 'myCallback']); $myObject->processSomething([new MyClass(), 'myStaticCallback']);स्टेटिक क्लास मेथड्स को पास करना// Inside the same class
$this->processSomething([$this, 'myCallback']);
$this->processSomething([$this, 'myStaticCallback']);
// Outside the same class
$myObject->processSomething([new MyClass(), 'myCallback']);
$myObject->processSomething([new MyClass(), 'myStaticCallback']);
// उसी वर्ग के अंदर
$this->processSomething([__CLASS__, 'myStaticCallback']);
// उसी कक्षा के बाहर
$myObject->processSomething(['\Namespace\MyClass', 'myStaticCallback']);
$myObject->processSomething(['\Namespace\MyClass::myStaticCallback']); // पीएचपी 5.2.3
$myObject->processSomething([MyClass::class, 'myStaticCallback']); // PHP 5.5.0 अतिरिक्त विकल्प// Inside the same class
$this->processSomething([__CLASS__, 'myStaticCallback']);
// Outside the same class
$myObject->processSomething(['\Namespace\MyClass', 'myStaticCallback']);
$myObject->processSomething(['\Namespace\MyClass::myStaticCallback']); // PHP 5.2.3
$myObject->processSomething([MyClass::class, 'myStaticCallback']); // PHP 5.5.0
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3