Php 找出调用函数的函数的名称

Php 找出调用函数的函数的名称,php,function,callback,Php,Function,Callback,可能重复: 像这样: function foo(){ do_something(); } function do_something(){ // How can I find out if this function was called from "foo" ? } 这在PHP中可能吗 (注意在我的例子中,do\u something() function do_something(){ $trace = debug_backtrace(); if($trace[1]

可能重复:

像这样:

function foo(){
  do_something();
}

function do_something(){
  // How can I find out if this function was called from "foo" ?
}
这在PHP中可能吗


(注意在我的例子中,
do\u something()

function do_something(){
   $trace = debug_backtrace();
   if($trace[1]['function'] == 'foo'){
      // called from foo
   }
}
您可以使用,它将允许您访问调用堆栈

function do_something(){
   $trace = debug_backtrace();
   if($trace[1]['function'] == 'foo'){
      // called from foo
   }
}

我会把它扔掉,知道它不是你想要的,但是为什么不把它作为一个论点来传递呢?看:它有点复杂。。。但本质上我对foo()函数没有任何控制权。这个函数只接受一个回调作为参数,我会把它扔掉,知道它不是你想要的,但是为什么不把它作为参数传入呢?看:它有点复杂。。。但本质上我对foo()函数没有任何控制权。该函数只接受回调,因为它的名称听起来很可怕。在开发环境之外使用它可以吗?如果你真的必须使用它,你可以使用它。但是不要试图根据调用者函数来改变函数的行为,而是根据参数(我知道有些情况下需要获取调用者函数),它的名字听起来很可怕。在开发环境之外使用它可以吗?如果你真的必须使用它,你可以使用它。但是不要试图根据调用者函数而是参数来改变函数的行为(我知道有些情况下需要获取调用者函数)