完全限定的接口名称

had*_*vig 4 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
    $this->getMockBuilder('Example\Interfaces\InputInterface')
...
Run Code Online (Sandbox Code Playgroud)

谢谢.

Fed*_*kun 8

::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
}
Run Code Online (Sandbox Code Playgroud)