在一个函数中,我怎样才能知道它是否是从输出缓冲回调中调用的(不一定是直接的)?
function foo() {
if (magic here ????)
$log->write("foo:Callback")
else
$log->write("foo:Normal")
}
function calls_foo() {
...stuff
foo();
}
calls_foo() // should log foo:Normal
ob_start('calls_foo')
...stuff
// should log foo:Callback at the end of the script
答案 0 :(得分:2)
函数ob_get_status()返回一个数组,其中包含有关输出缓冲当前状态的信息。
答案 1 :(得分:2)
检查$debug = debug_backtrace()
。如果调试数组长1,则从main调用,这意味着这是在请求结束时调用的ob回调。然后,您可以迭代数组并查看每个数组的'function'
键以获得ob刷新功能。