कल्पना कीजिए मैं निम्नलिखित स्थिति है:कोड लाइन और फ़ाइल प्राप्त करें जो PHP में वर्तमान फ़ंक्शन को निष्पादित कर रहा है?
File1.php
<?php
include("Function.php");
log("test");
?>
function.php
<?php
function log($msg)
{
echo "";
}
?>
मैं लॉग समारोह को बदलने के लिए इतना है कि यह निम्न उत्पादन होता हैं:
परीक्षण (फ़ाइल: फ़ाइल 1.एफपी, रेखा संख्या: 3)
तो, फ़ाइल नाम और PHP में वर्तमान फ़ंक्शन निष्पादित करने वाले कोड की लाइन संख्या प्राप्त करने का कोई भी तरीका है? बैकलॉग उपयोग टिप्पणियों के लिए
संपादित करें: प्रोग्रामिंग के उन्मुख तरह से जब मैं अपने वस्तु में बैकलॉग का उपयोग मैं निम्नलिखित स्थिति है।
index.php
<?php
include("Logger.static.php");
include("TestClass.class.php");
new TestClass();
?>
TestClass.class.php
<?php
class TestClass
{
function __construct()
{
Logger::log("this is a test log message");
}
}
?>
Logger.static.php
<?php
class Logger
{
static public function log($msg)
{
$bt = debug_backtrace();
$caller = array_shift($bt);
echo $caller['file'];
echo $caller['line'];
}
}
?>
इस उदाहरण के रूप में फ़ाइल "index.php" वापस आ जाएगी और लाइन नंबर 4 के रूप में, यह वह जगह है जहां कक्षा शुरू की जाती है। हालांकि, यह फ़ाइल TestClass.class.php और लाइन नंबर 6 को वापस करना है। किसी भी विचार को कैसे ठीक किया जाए?
वास्तव में, एक समस्या है। मैं ऑब्जेक्ट उन्मुख तरीके से कोडिंग कर रहा हूं और यह उस रेखा और स्क्रिप्ट को वापस कर रहा है जो ऑब्जेक्ट को कॉल कर रहा है जिसमें फ़ंक्शन कहा जाता है। इसके बजाय, मुझे मुझे उस वर्ग फ़ाइल के भीतर शामिल वर्ग और रेखा का नाम देना चाहिए। कोई उपाय? – Tom
आपको यहां और अधिक विशिष्ट होने की आवश्यकता है। क्या आप मुझे दिखा सकते हैं कि आप क्या प्राप्त कर रहे हैं और आप इसके बजाय क्या उम्मीद कर रहे हैं? –
हैलो लिओर कोहेन, क्या आप कृपया मेरी संपादित मूल पोस्ट देख सकते हैं? मैंने सब कुछ विस्तार से समझाया। धन्यवाद! – Tom