हुक कॉलबैक के रूप में कक्षा के तरीकों को पंजीकृत करना


16

मुझे यकीन नहीं है कि मैंने इसे सही तरीके से किया है।

जैसा मुझे समझ में आया:

अगर मेरे पास एक क्लास फू है और एक स्टैटिक मेथड बार है तो मैं array("foo","bar")उस फंक्शन नाम के रूप में ऐरे पास करके कॉलबैक के रूप में रजिस्टर कर सकता हूं ।

यदि मेरे पास $ foo में एक वर्ग का एक उदाहरण है और मैं जिस विधि बार से सरणी पास करना चाहता हूं उसे कॉल करना चाहता हूं array($foo,'bar')

अगर मुझे कक्षा के अंदर एक कार्रवाई दर्ज करने की आवश्यकता है तो क्या यह काम करेगा array($this,'bar')?


3
सवाल पूछने से ज्यादा तेजी से एक परीक्षा नहीं होगी? ;) हां, आप यह कर सकते हैं।
FUXIA

2
एक परीक्षण मदद कर सकता है, लेकिन कभी-कभी आप प्रतिक्रिया भी तलाशते हैं। मुझे लगता है कि वास्तव में सवाल पूछना ठीक है, और ओपी की प्रेरणा पर सवाल उठाते हुए यह नियम है ... :)
हैकर

जवाबों:


11

अगर मुझे कक्षा के अंदर एक कार्रवाई दर्ज करने की आवश्यकता है तो क्या यह काम करेगा array($this, 'bar')?

हाँ यह काम करता है। $thisडॉक्स कॉलबैक के लिए आवश्यक ठोस उदाहरण का उल्लेख कर रहा है । यह बिल्कुल आपके द्वारा दिए गए $fooउदाहरण की तरह है । यह सिर्फ इतना $thisहै कि थोड़ा अधिक विशेष है, लेकिन यह मूल रूप से एक ही प्रतिनिधित्व करता है और यह PHP में कॉलबैक के साथ निर्दोष रूप से काम करता है।

अतिरिक्त:

अगर मेरे पास एक क्लास फू है और एक स्टैटिक मेथड बार है तो मैं array("foo","bar")उस फंक्शन नाम के रूप में ऐरे पास करके कॉलबैक के रूप में रजिस्टर कर सकता हूं ।

हां, आप ऐसा कर सकते हैं, स्थैतिक फ़ंक्शन के लिए, आप इसे सरणी के बजाय एक स्ट्रिंग के रूप में भी लिख सकते हैं:, कॉलबैक डॉक्सfoo::bar देखें । काम हो सकता है।


1

स्थिर तरीकों के लिए आप यह भी कर सकते हैं:

['foo','bar'] 

जब निम्न अनिर्धारित वर्ग निरंतर 'बार' देता है :

foo::bar

उदाहरण - $ control_callback निर्दिष्ट करते समय wp_add_dashboard_widget

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.