【发布时间】:2023-03-23 04:55:02
【问题描述】:
在 PHP 中,可以通过类名解析获得完整的类名,如下所示:
例子:
namespace Name\Space;
class ClassName {}
echo ClassName::class;
输出:Name\Space\ClassName
这比直接在代码中使用字符串Name\Space\ClassName 更好,因为代码自省,尤其是在 IDE 中可以直接发现错误。
我想知道类的方法是否有类似的东西 - 这对于回调函数特别有用。
这就是你基本上可以传递回调的方式:
$a = function($callback,$arg) { return $callback($arg); }
$a('getInfo',5);
我宁愿做这样的事情,而不是在这里传递一个字符串(可能会改变):
$a(MyClass::class::getInfo,5);
在 IDE 中单击“转到声明”后,我可以直接转到 getInfo,而且如果方法不再存在,我会看到错误。有没有办法在这里实现我想做的事情?
【问题讨论】:
-
Possible duplicate。一些有用的信息可以在问题下的 cmets 中找到,而不仅仅是在答案中。
-
@El_Vanja 非常感谢您,这基本上是同一个问题,这是一个很好的讨论。对于重复,我认为stackoverflow指南说“这里已经有了答案”。但似乎没有足够的答案,所以它可能是 PHP 功能请求?还是有人想出了一个现代的解决方案?
-
我只是手动链接作为可能的重复,因为虽然本质上是在问同样的事情,但该问题的作者非常具体地寻找速记表达式,我不确定那里的信息是否会提供为您的案件提供满意的答复。
-
@El_Vanja 是的 - 谢谢。我的问题有点宽泛,但答案很可能是相同的。
标签: php callback introspection