为了账号安全,请及时绑定邮箱和手机立即绑定

在php中,有没有办法确定生成字符串时是否使用了 ::class ?

在php中,有没有办法确定生成字符串时是否使用了 ::class ?

PHP
30秒到达战场 2022-10-09 17:28:36
以下两个 return 语句将返回相同的字符串:getClassName(): string{    return MyClassName::class; // returns 'MyClassName'    return 'MyClassName';      // returns 'MyClassName'}我们也有调用这个方法的代码。$className = getClassName();在我们调用这个方法的代码中,有没有什么方法可以判断是否::class使用了 生成字符串?我们使用的 IDE 能够检测何时::class被使用,并且我们希望在编译时以某种方式在我们的代码中使用这个逻辑。
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

IDE 可以查看源代码并查看您使用的语法。他们使用它来提供提示、交叉引用以及他们在您编辑时所做的所有其他好事。


但是一旦代码被编译和运行,大部分信息就被丢弃了。值没有任何关于它们是如何计算的信息——一个字符串只是一堆字符。反射特性允许您访问调用堆栈以查看调用了哪些函数,因为这是在内存中实现返回所必需的,但数据不会跟踪值的来源。


因此,没有内置方法可以获取您要查找的信息。如果您需要跟踪这一点,则必须在应用程序代码本身中实现它。


getClassName(): array

{

    return ['source' => '::class', 'value' => MyClassName::class];

    return ['source' => 'string', 'value' => 'MyClassName'];

}


查看完整回答
反对 回复 2022-10-09
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信