दिलचस्प पोस्ट
अंगुलर हैश को कैसे जोड़ता है AngularJS में लिंक करना WPF में कंबोडिया नियंत्रण के लिए कैसे एक enum बाँध? जावा: आदिम डेटा प्रकारों का सरणी autobox नहीं करता है मैं ajax के साथ एक फ़ाइल से JSON ऑब्जेक्ट कैसे लोड करूं? एक या अधिक रिक्त स्थान या टैब द्वारा स्ट्रिंग विस्फोट करें .NET 4.0 के लिए सी # 6.0 काम करता है? गतिशील रूप नाम विशेषता <input type = "text" name = "{{variable-name}}"> Angularjs में कैसे गतिशील tablenames के साथ एसक्यूएल इंजेक्शन को रोकने के लिए? एक SQL सर्वर VARCHAR / NVARCHAR स्ट्रिंग में एक लाइन ब्रेक कैसे सम्मिलित करें PHP की तरह जावास्क्रिप्ट में साल का सप्ताह मिलता है सदस्य कार्य के साथ बूस्ट बाइंड का उपयोग कैसे करें IE में "सीमा-त्रिज्या" के लिए सहायता पायथन के लिए सरल, क्रॉस प्लेटफार्म MIDI लाइब्रेरी जावा सुरक्षा संवाद का प्रकटन क्या मैं जावास्क्रिप्ट से अमान्य / कस्टम सीएसएस गुणों का मूल्य प्राप्त कर सकता हूं?

पता कैसे एक समारोह परिभाषित किया जाता है?

मैं कैसे पता लगा सकता है कि किस फाइल और लाइन को दिए गए फ़ंक्शन परिभाषित किया गया था?

वेब के समाधान से एकत्रित समाधान "पता कैसे एक समारोह परिभाषित किया जाता है?"

आप यह स्वयं PHP में भी कर सकते हैं:

$reflFunc = new ReflectionFunction('function_name'); print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine(); 

या तो आईडीई का उपयोग करें जो ऐसा करने की अनुमति देता है (मैं ईक्लिप्स पीडीटी की सिफारिश करता हूं), या आप लिनक्स पर अगर वेंगेर का इस्तेमाल कर सकते हैं, तो आप इसे पूरी तरह से ग्राफ़ कर सकते हैं। लिनक्स में ऐसा कुछ होगा:

 grep -R "function funName" * 

परियोजना के रूट फ़ोल्डर के भीतर से

अगर आप नेटबीन्स जैसे आईडीई का उपयोग करते हैं, तो आप फ़ंक्शन के उपयोग पर CTRL + क्लिक कर सकते हैं और आपको यह निर्धारित किया जाएगा कि यह कहां परिभाषित किया गया है, यह मानते हुए कि फ़ाइल आपके द्वारा निर्धारित प्रोजेक्ट फ़ोल्डर में है।

यद्यपि ऐसा करने के लिए कोई कोड या फ़ंक्शन नहीं है।

वह एक मूल कार्य है जो एक विशिष्ट स्ट्रिंग के लिए आपकी संपूर्ण प्रोजेक्ट फाइल को स्कैन करेगा और आपको बताएगा कि यह किस फ़ाइल में है और कौन से चार स्थिति केवल मूल php का उपयोग करने पर शुरू होती है। उम्मीद है कि यह किसी को मदद करता है …

 <?php $find="somefunction()"; echo findString('./ProjectFolderOrPath/',$find); function findString($path,$find){ $return=''; ob_start(); if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if(is_dir($path.'/'.$file)){ $sub=findString($path.'/'.$file,$find); if(isset($sub)){ echo $sub.PHP_EOL; } }else{ $ext=substr(strtolower($file),-3); if($ext=='php'){ $filesource=file_get_contents($path.'/'.$file); $pos = strpos($filesource, $find); if ($pos === false) { continue; } else { echo "The string '$find' was found in the file '$path/$file and exists at position $pos<br />"; } }else{ continue; } } } } closedir($handle); } $return = ob_get_contents(); ob_end_clean(); return $return; } ?> 

मुझे लगता है कि "वर्णित" द्वारा आप का मतलब "परिभाषित" है इसके लिए, आपको आदर्श आईडीई की आवश्यकता होती है जो यह कर सकती है।

मुझे टॉम के समाधान पसंद है, इसलिए मैंने सोचा कि मैं प्रतिबिंब के साथ थोड़ी अधिक चालें साझा कर सकता हूं (यह प्रत्येक PHP 5 पर काम करना चाहिए):

  • एक-लाइनर फाइल नाम मुद्रित करने के लिए:

     print (new ReflectionFunction("foo"))->getFileName(); 

कृपया ध्यान दें कि यह आपको आंतरिक कार्यों (जैसे _ ) के लिए स्थान नहीं दिखाएगा, लेकिन यह अभी भी इसके लिए एपीआई को प्रिंट कर सकता है।

  • परिभाषा और कार्य के पैरामीटर को मुद्रित करने के लिए:

     print new ReflectionFunction("foo"); 

    उदाहरण:

     $ php -r 'print new ReflectionFunction("_");' Function [ <internal:gettext> function _ ] { - Parameters [1] { Parameter #0 [ <required> $msgid ] } } 

फंक्शन परिभाषित कहां से है, फ़ंक्शन को पुन: परिभाषित करने की कोशिश करने के लिए एक अन्य तरीका, PHP त्रुटि सिस्टम केवल एक त्रुटि आपको बताएगा जहां फ़ंक्शन पहले से परिभाषित है

आपको एक आईडीई की आवश्यकता होगी जो "ओपन फंक्शन डेक्लेरेशन" कार्यक्षमता का समर्थन करता है। पीएचटी के लिए अच्छा है एक्लिप्स पीडीटी।

फ़ंक्शन परिभाषा को देखने के लिए, फ़ंक्शन का नाम हाइलाइट करें, CTRL दबाएं + नाम पर क्लिक करें।