我们有一个在主机上定义但不是在本地定义的函数,这会导致名称冲突。功能是go()
,它在柯比和其他地方。当我们部署到Vercel时,我们会收到一条错误消息,指出go()
已定义。这在本地或其他主机上都不是问题(我们以 Dreamhost 为例)。
我们尝试这样做以找到调用原始文件的位置:
$reflFunc = new ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
但我们从字面上得到::
好像没有定义一样。如果我们将函数包装在if (!function_exists('go'))
其中确实会因其他原因而中断,但重新声明错误得到缓解,因此我们知道该函数存在但我们找不到它。
在 JavaScript 中你可以这样做console.log(someFunction)
,它会以字符串形式输出函数。例子:
我们可以在 PHP 中做到这一点吗?这将允许我们尝试至少在项目或网络上搜索代码签名,以查找发生冲突的代码。