首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php:确定从何处调用函数

php:确定从何处调用函数
EN

Stack Overflow用户
提问于 2010-06-03 03:09:35
回答 7查看 63.2K关注 0票数 98

有没有办法找出PHP中的函数是从哪里被调用的?示例:

代码语言:javascript
复制
function epic()
{
  fail();
}

function fail()
{
  //at this point, how do i know, that epic() has called this function?
}
EN

回答 7

Stack Overflow用户

发布于 2010-06-03 03:13:01

使用debug_backtrace()

代码语言:javascript
复制
function fail()
{
    $backtrace = debug_backtrace();

    // Here, $backtrace[0] points to fail(), so we'll look in $backtrace[1] instead
    if (isset($backtrace[1]['function']) && $backtrace[1]['function'] == 'epic')
    {
        // Called by epic()...
    }
}
票数 29
EN

Stack Overflow用户

发布于 2016-09-16 15:54:40

据我所知,最快最简单的解决方案

代码语言:javascript
复制
public function func() { //function whose call file you want to find
    $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
}

$trace: Array
(
    [0] => Array
        (
            [file] => C:\wamp\www\index.php
            [line] => 56
            [function] => func
            [class] => (func Class namespace)
            [type] => ->
        )

)

我在联想笔记本电脑上测试了速度:英特尔奔腾CPU N3530 2.16 the,内存8 8GB

代码语言:javascript
复制
global $times;
$start = microtime(true);
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
$times[] = microtime(true) - $start;

结果:

代码语言:javascript
复制
count($times):  97
min:    2.6941299438477E-5
max:   10.68115234375E-5
avg:    3.3095939872191E-5
median: 3.0517578125E-5
sum:  321.03061676025E-5

the same results with notation without E-5
count($times):  97
min:    0.000026941299438477
max:    0.0001068115234375
avg:    0.000033095939872191
median: 0.000030517578125
sum:    0.0032103061676025
票数 19
EN

Stack Overflow用户

发布于 2012-06-21 16:13:43

因此,如果你仍然不知道怎么做,那么这里有一个解决方案:

代码语言:javascript
复制
$backtrace = debug_backtrace();
echo 'Mu name is '.$backtrace[1]['function'].', and I have called him! Muahahah!';
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2960805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档