这可能吗?
伪代码:
class MyClass
{
function myFunc1()
{
...
}
function myFunc2()
{
echo GET_FUNCTION_NAME($this->myFunc1)
}
}
想要的输出:
myFunc1
在GET_FUNCTION_NAME
方法/函数/构造/上方的代码中,任何会返回以参数形式给出的函数名称的文本表示形式。
因此,重点是从外部函数中获取作为字符串的函数名称。
我找到的所有代码都涉及通过字符串提供函数名称(例如,指定回调方法),但是它们都没有提到如何获取该函数名称而无需手动将其写入字符串 >(因此,将代码复制到字符串中并使重构变得比需要的困难)。
从功能内部使用OTOH即可轻松实现。 __FUNCTION__
变量,因此我不需要该变量。
编辑
典型的用例是任何回调方法。
我遇到此问题的一个示例是set_error_handler()方法,它在等待callable
作为第一个参数。 callable
可以简化为string
。问题是,如果我将函数名称指定为字符串,那么以后在将来任何时候进行重构时,我都必须格外小心地搜索字符串并对其进行特殊处理,否则会留下错误的引用在那里。
更不用说任何名称都应该定义一次且任何其他用途都应引用该名称的原则。