Php 完全限定接口名

Php 完全限定接口名,php,Php,有没有一种方法可以获得类似于MyClass::class的完全限定接口名 例如: namespace Example\Tests; use Example\Interfaces\InputInterface; ... class CommandTest ... ... public function createInputMock() { // I want to replace next string with something similar to MyClass::class

有没有一种方法可以获得类似于
MyClass::class
的完全限定接口名

例如:

namespace Example\Tests;

use Example\Interfaces\InputInterface;
...

class CommandTest ...
...
public function createInputMock()
{
    // I want to replace next string with something similar to MyClass::class
    $this->getMockBuilder('Example\Interfaces\InputInterface')
...

谢谢。

如果我没记错的话,您不能使用
::class
表示法转到PHP5.5,因此您希望在5.4或更早版本的vesrion中使用类似的东西

所以简单的答案是——不,没有办法

在PHP的早期版本中缺少这一功能正是核心开发人员向PHP5.5添加
::class
的原因

如果是类名,你可以进行一次奇怪的肮脏攻击:在新实例上使用,但不要这样做。

名称解析可以用于任何导入的名称空间:类、接口、函数

namespace A\B\C {
    interface Interface_Bar {}
    function Function_Foo() {}
    function Function_Foo_Bar() {}
    const Const_BARFOO = 123;
}

namespace {
    use A\B\C\Interface_Bar;
    use A\B\C;
    use Undefined\Classes\UndefinedClass;
    use function A\B\C\Function_Foo_Bar;
    use const A\B\C\Const_BARFOO;

    echo Interface_Bar::class, "\n"; // print A\B\C\Interface_Bar
    echo C\Function_Foo::class, "\n"; // print A\B\C\Function_Foo
    echo C\Const_BARFOO::class, "\n"; // print A\B\C\Const_BARFOO
    echo UndefinedClass::class, "\n"; // print Undefined\Classes\UndefinedClass

    echo Function_Foo_Bar::class, "\n"; // print Function_Foo_Bar <- warning
    echo Const_BARFOO::class, "\n"; // print Const_BARFOO <- warning
}
名称空间A\B\C{
接口{}
函数函数_Foo(){}
函数函数函数_Foo_Bar(){}
const const_BARFOO=123;
}
名称空间{
使用\B\C\Interface\u栏;
使用A\B\C;
使用未定义\类\未定义类;
使用函数A\B\C\function\u Foo\u Bar;
使用常量A\B\C\const\u BARFOO;
echo接口\u栏::类,“\n”//打印一个\B\C\Interface\u栏
echo C\Function\u Foo::class,“\n”//打印A\B\C\Function\u Foo
echo C\Const\u BARFOO::class,“\n”//打印A\B\C\Const\u BARFOO
echo UndefinedClass::class,“\n”//打印Undefined\Classes\UndefinedClass

echo函数\u Foo\u Bar::class,“\n”//print函数\u Foo\u Bar
InputInterface::class
不好?谢谢。我在与接口相关的php文档中没有找到这个,所以我认为它只适用于类名。您可以将注释作为答案发布,我会接受它。