我知道函数debug_backtrace,但我正在寻找一些准备使用的函数实现GetCallingMethodName()吗?如果它也给了方法的类(如果它确实是一个方法),那将是完美的.
例如,
这是index.php
<?
require_once('header.php');
?>
Run Code Online (Sandbox Code Playgroud)
header.php能知道它被index.php包含了吗?
- 编辑 -
我找到了解决方案:
function backtrace_filename_includes($name){
$backtrace_array=debug_backtrace();
if (strpos($backtrace_array[1]['file'],$name)==false){
return false;
}else{
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
header.php文件
<?
if (backtrace_filename_includes('index.php')) echo "index.php";
?>
Run Code Online (Sandbox Code Playgroud) 可能的重复:
PHP 5 中的调用函数?
我想知道从哪里调用全局函数或公共方法。我想我可以通过检查 debug_backtrace 来做到这一点,但我宁愿使用一种更轻量级的机制(如果存在)。有什么建议么?
例如,如果您想象 get_callee() 函数和常量存在:
function doSomething() {
if(get_callee() == 'PHP_GLOBAL') { throw new IllegalAccessException(); }
...
}
Run Code Online (Sandbox Code Playgroud)