此问题已在此处有答案:
11年前关闭。
可能重复:
Caller function in PHP 5?
我想知道从哪里调用全局函数或公共方法。我想我可以通过检查debug_backtrace来实现,但如果存在的话,我宁愿使用轻量级机制。有什么建议吗?
例如,如果你想象get_callee()函数和常量存在:
function doSomething() {
if(get_callee() == 'PHP_GLOBAL') { throw new IllegalAccessException(); }
...
}
3条答案
按热度按时间kiz8lqtg1#
编辑:抱歉,现在看到你关于debug_backtrace()的注解了。
有点丑,但嘿,如果你需要这样做,有些事情是错误的。
神奇之处在于get_callee()函数和debug_backtrace()。是的,如果你必须使用这个,添加一些错误检查。
输出:
初始化
从foo调用bar
foo从酒吧打来电话
ldioqlga2#
Xdebug提供了一些不错的功能。
将返回跟踪
在ubuntu上安装Xdebug的最佳方法是
您可能需要先安装php5-dev
pxy2qtax3#
为什么你不简单地使用OO并声明你的方法/函数是私有的?
如果您开始在代码中到处散布这些
get_callee()
,那么您正在创建一个可怕的组件。