类型错误:class::functionName() 的返回值必须是 /Interface 的实例,返回 null

you*_*ouv 4 php phpunit unit-testing prophecy

如何使用 php prophecy 指定函数的返回类型(接口的实例)。

方法是这样的:-

class classname()
{
  public $var;

public functionName : Interface
{

   return $this->var;

}

}
Run Code Online (Sandbox Code Playgroud)

可以做这样的事情吗?$this->method->willreturn(string)->ofTypeInterface

小智 6

PHP返回类型默认不允许空值,所以如果你指定函数应该返回一个Interface只能一个接口对象。

因此,您应该返回一个 Interface 对象,或者如果您还想允许空值,您应该执行以下操作:

public functionName : ?Interface
{

}
Run Code Online (Sandbox Code Playgroud)

这将接受Interface要返回的对象或 null