【问题标题】:How to get the class from a callable如何从可调用对象中获取课程
【发布时间】:2014-08-19 12:05:43
【问题描述】:

在这种情况下:

$callable1 = "\somenamespace\someclass::somefunction";
$callable2 = array('someclass', 'somefunction');
$callable3 = 'somefunction';
$callable4 = array($someInstance, 'somefunction');

有没有一种方法可以可靠地从可调用对象中提取命名空间和类(如果有),无论其定义格式如何?

【问题讨论】:

  • 你想让函数告诉你命名空间和类吗?
  • 我想要$class = getClassFromCallable($callable); 之类的东西,并希望$class 成为someclass
  • @Greggg 如果可调用的是匿名函数怎么办?
  • 那么 null 就可以了,或者 false。
  • 你为什么不写一个函数来根据它们的格式解析你的例子?

标签: php callable


【解决方案1】:

以下课程似乎完全符合您的需要:

CallableReflection.php

似乎缺少命名空间提取。你可以自己用 PHP 的反射添加:

ReflectionClass::getNamespaceName

【讨论】:

  • 刚刚试了一下,它返回了带有命名空间的类,这实际上对我打算使用它的目的来说还不错。虽然相当一堂课!猜猜我的要求比我预期的要难。酷,谢谢。 :)
  • 如果答案对您有用,请善待并接受。所以它不再出现在未回答的问题列表中。
  • 好吧,我不这么说,因为这是我的答案;)许多新用户不知道这个网站是如何运作的。但我明白了,你并不是真正的新人..
猜你喜欢
  • 2021-08-24
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多