क्या पंजीकृत शटडाउन फ़ंक्शंस की सूची तक पहुंचने के लिए कोई तरीका है?पंजीकृत शटडाउन फ़ंक्शंस की सूची
5
A
उत्तर
9
आप एक एक्सटेंशन लिख सकते हैं और BG(user_shutdown_function_names)
पर देख सकते हैं। register_shutdown_function
के लिए एक रैपर बनाने के लिए शायद आसान है जो कुछ सरणी में शट डाउन फ़ंक्शंस सहेजता है और इसके बजाय इसे कॉल करता है।
(untested)
#include "ext/standard/basic_functions.h"
//usual include suspects here
typedef struct _php_shutdown_function_entry {
zval **arguments;
int arg_count;
} php_shutdown_function_entry;
static void _shutdown_function_dtor(php_shutdown_function_entry *shutdown_function_entry) /* {{{ */
{
int i;
for (i = 0; i < shutdown_function_entry->arg_count; i++) {
zval_ptr_dtor(&shutdown_function_entry->arguments[i]);
}
efree(shutdown_function_entry->arguments);
}
static int _build_shutdown_array(php_shutdown_function_entry *entry, zval *arr TSRMLS_DC)
{
zval *inner;
zval *args;
int i;
array_init(inner);
array_init(args);
Z_ADDREF_P(entry->arguments[0]);
add_assoc_zval(inner, "callback", entry->arguments[0]);
for (i = 1; i < entry->arg_count; i++) {
Z_ADDREF_P(entry->arguments[i]);
add_next_index_zval(args, entry->arguments[i]);
}
add_assoc_zval(inner, "arguments", args);
add_next_index_zval(arr, inner);
}
PHP_FUNCTION(list_shutdown_functions)
{
if (zend_parse_parameters_none() == FAILURE)
return;
if (!BG(user_shutdown_function_names)) {
ALLOC_HASHTABLE(BG(user_shutdown_function_names));
zend_hash_init(BG(user_shutdown_function_names), 0, NULL,
(void (*)(void *)) _shutdown_function_dtor, 0);
}
array_init(return_value);
zend_hash_apply_with_argument(BG(user_shutdown_function_names),
(apply_func_arg_t) _build_shutdown_array, return_value TSRMLS_CC);
}
2
स्वयं को ट्रैक रखने के अलावा, नहीं। पंजीकृत फ़ंक्शन नामों की सूची आपकी PHP स्क्रिप्ट से अवगत नहीं है। यदि आप स्वयं PHP को विस्तारित करने के लिए खुले हैं (यह एक आसान काम होगा) तो आर्टेफैक्टो का जवाब देखें।
संबंधित मुद्दे
- 1. शटडाउन
- 2. कर्मचारी शटडाउन
- 3. पाइथन लैम्ब्डा फ़ंक्शंस की सूची w/o आंशिक
- 4. स्प्रिंग 3 में शटडाउन हुक पंजीकृत करने का सही तरीका क्या है?
- 5. जावा शटडाउन हुक थ्रेड
- 6. क्वार्ट्ज शेड्यूलर शटडाउन
- 7. सी #/नेट सॉकेट। शटडाउन
- 8. पायथन - विंडोज शटडाउन घटनाक्रम
- 9. शटडाउन हुक C++
- 10. कनेक्शन पूल शटडाउन एंड्रॉइड
- 11. हबेस क्षेत्र सर्वर शटडाउन
- 12. एंड्रॉइड में शटडाउन घटनाक्रम
- 13. डेटाफ्रेम की प्रत्येक पंक्ति में एन फ़ंक्शंस की एक सूची लागू करें?
- 14. शटडाउन हुक्स बुरा तोड़ जब
- 15. यूनिटी .NET: निर्भरताओं की सूची
- 16. PHP फ़ंक्शंस - तर्कों की अधिकतम संख्या
- 17. क्या यूनिक्स फ़ंक्शंस की जावा लाइब्रेरी है?
- 18. एरलांग: क्या मुझे वर्तमान में पंजीकृत सभी परमाणुओं की सूची मिल सकती है?
- 19. फ्लैश AS3 EventDispatcher - पंजीकृत श्रोताओं की सूची प्राप्त करने का कोई भी तरीका?
- 20. मैं regsvr32 उपकरण द्वारा पंजीकृत सभी अप्रबंधित डीएलएस की सूची कैसे प्राप्त कर सकता हूं?
- 21. कैसल विंडसर कंटेनर इंस्टेंस के साथ पंजीकृत सभी प्रकारों की सूची
- 22. केवीओ - पंजीकृत ऑब्जेरर्स
- 23. पंजीकृत कराए
- 24. परफेक्ट हैश फ़ंक्शंस
- 25. मैं शटडाउन हुक में स्विंग का उपयोग कैसे करूं?
- 26. हास्केल में एकाधिक तर्कों पर फ़ंक्शंस की सूची को कैसे मैप करें?
- 27. क्या हास्केल कंसोल से प्रीलूड फ़ंक्शंस की सूची देखने का कोई तरीका है?
- 28. उच्च आदेश फ़ंक्शंस का उपयोग करके विकल्पों की सूची कैसे फ़्लैट करें?
- 29. मैं Emacs lisp गैर-इंटरैक्टिव फ़ंक्शंस की सूची कैसे प्राप्त करूं?
- 30. पंजीकृत प्रतीक
वाह, क्या बारे में गहराई से जवाब। अधिकांश समय PHP के पास PHP स्तर पर चीजें करने के लिए पहले से ही एक फ़ंक्शन है, लेकिन इस मामले में यह नहीं है, और फिर भी आप अभी भी समाधान के साथ आए हैं! –