我在文档中没有发现有关这方面的任何信息,但似乎存在这种情况是合乎逻辑的。如何使类型提示返回object类型的值?(我指的是任何对象,而不是\DateTime等的某个对象。)
function getParticipant(): ?object
{
//...
$x = new Cat();
return $x;
}它不起作用,而真正不公平的是,print getType($x)将导致object。因此,我们有一个object类型,但不能严格地说我们将返回一个object?
您可能会说,这真的是不必要的,我本可以只编写: Cat,但是当我覆盖一个在他的PHPDoc中包含了* @return object|null */的方法时,这并不是我所需要的。
发布于 2017-06-19 13:38:31
:object不解析具有此类型的变量。实际上,PHP将查找名为object的类,并期望返回该类的实例。
使用您的示例,您应该指示该函数将返回Cat的一个实例,因此它应该如下所示:
function getParticipant(): Cat
{
return new Cat();
}我想说的是,PHPDoc说object将被归还是很好的。IDE应该解决这个问题,对于PHP解释器来说,这并不重要。
如果您正在覆盖方法,您可以简单地用@return覆盖PHPDoc语句。
https://stackoverflow.com/questions/44631968
复制相似问题