PHP函数没有找到被调用代码,但运行时执行了(PHP初学者求助)
问一下我遇到的这个奇怪的问题,我正在研究elastix的源代码,是一个软交换系统的web访问界面,
然后我想根据其操作数据库往回找,找到怎么从最初的用户操作(按下哪个按钮)。
问题是,我找到了操作数据库的函数,并且只有这一个函数,没有别的函数执行这个DB操作了,
但是,没有任何一个PHP调用了这个函数。
而这个函数的确是执行了(我注释掉它之后,从画面上点击提交,DB里没有插入数据)。
这让我极其郁闷,
难道PHP里的类的函数,可以被其他非PHP的东西调用?
要不然它是怎么被调用的?
它只是一个普通的函数。
贴出函数来:
class core_conf {
function core_devices_addsip($account) {
global $db;
global $currentFile;
......
$compiled = $db->prepare('INSERT INTO sip (id, keyword, data, flags) values (?,?,?,?)');
$result = $db->executeMultiple($compiled,$sipfields);
if(DB::IsError($result)) {
die_freepbx($result->getDebugInfo()."
".'error adding to SIP table');
}
}
}
我刚接触PHP,只是了解点儿皮毛,这问题完全把我搞蒙了。
------解决方案--------------------
你是指 core_devices_addsip ???
在项目的所有文件中搜索 core_devices_addsip 串
你也可以在这个方法里写上
print_r(debug_print_backtrace());
运行一下就可以观察到都是谁在调用它
------解决方案--------------------
或许是你找错了目标
跟踪程序的运行要自底向上
即从界面出发,一层层的剥离。为此你需要写一些简单的桩页面
- PHP code
function f1() { f2(); } function f2() { debug_print_backtrace(); } f1();