क्या यह संभव है?मैं PHP में फ़ंक्शन के अंदर फ़ंक्शन नाम कैसे प्राप्त करूं?
function test()
{
echo "function name is test";
}
क्या यह संभव है?मैं PHP में फ़ंक्शन के अंदर फ़ंक्शन नाम कैसे प्राप्त करूं?
function test()
{
echo "function name is test";
}
यह एक बहुत ही सटीक तरीका है। फंक्शन http://www.php.net/manual/en/language.constants.predefined.php
उदाहरण:
class Test {
function MethodA(){
echo __FUNCTION__ ;
}
}
परिणाम: "MethodA";
__FUNCTION__ गैर-वर्ग कार्यों के लिए भी काम करता है। PHP 7.0.8 पर कोशिश की। – mvsagar
आप magic constants__METHOD__
(वर्ग के नाम भी शामिल है) का उपयोग कर सकते या __FUNCTION__
(सिर्फ नाम से काम) पर अगर यह एक विधि या एक समारोह है निर्भर करता है ... =)
__METHOD__ में कक्षा का नाम शामिल है, __FUNCTION__ बस यही है। उत्तरार्द्ध एक वर्ग की विधि में समान रूप से उपलब्ध है। –
यह सच है। लेकिन यह विधि नाम के बजाय MyClass :: methodName प्राप्त करने में अक्सर उपयोगी होता है। – PatrikAkerstrand
+1, '__METHOD__'' __FUNCTION__' से अधिक विशिष्ट है। – l0b0
आप PHP 5 का उपयोग कर रहे हैं, तो आप कोशिश कर सकते हैं यह:
function a() {
$trace = debug_backtrace();
echo $trace[0]["function"];
}
यह अविश्वसनीय संसाधन गहन है। __FUNCTION__ या __METHOD__ का उपयोग करना अधिक कुशल है। debug_backtrace() बहुत अच्छा है यदि आपको केवल फ़ंक्शन नाम से अधिक की आवश्यकता है। –
इस उद्देश्य के लिए debug_backtrace() का उपयोग करने के लिए यह एक बुरा अभ्यास है –
यह ** केवल सही तरीका ** मुझे मिला है !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!! क्योंकि '__FUNCTION__' पेरेंट फ़ंक्शन नाम देता है (जब वर्तमान फ़ंक्शन पैरेंट फ़ंक्शन में शामिल होता है) –
जिज्ञासा से बाहर, इसकी आवश्यकता कब है? क्या उन कार्यों को बनाना संभव है जिन्हें आप नाम नहीं जानते? – DisgruntledGoat
एक संभावित उपयोग आपके निष्पादन को लॉगिंग करेगा। यदि आप लिख रहे हैं "मुझे एक त्रुटि हुई"। एक लॉगफाइल या कुछ करने के लिए __FUNCTION__। इस तरह, यदि फ़ंक्शन का नाम बदला गया है तो आपको लॉग संदेश बदलने के लिए याद रखने वाले व्यक्ति के बारे में चिंता करने की आवश्यकता नहीं है। –
लॉगिंग के लिए इसकी आवश्यकता है! पूछने के लिए धन्यवाद :) – SublymeRick