7

我正在尝试为 PHP 中的特定父对象键入提示:

我目前有一个标准的基础对象类:

class stdObject
{

   private $var;

   public function setVar($var)
   {
     $this->var = $var;
     return $this;
   }
}

我有一个扩展它的类对象:

class valObject extends stdObject
{
}

在 PHP 函数中,我希望能够键入提示,以便该函数可以预期具有 的父级的任何对象stdObject,因此发送valObject将起作用但不能anyOldObject

这可能吗?

4

3 回答 3

4

您可以使用父类型:

function test(stdObject $obj) {
  // ...
}

如果你不想有一个纯 stdObject 作为参数,而只是一个继承 stdObject 的对象,你应该把你的 stdObject 类抽象或创建一个接口。

于 2013-04-20T14:45:55.090 回答
3

这可能吗?

是的,您所描述的正是类型提示的用途。这是文档

于 2013-04-20T14:45:13.853 回答
3

类型提示适用于实现链,因此这是有效的:

public function fnc(stdObject $obj)

这将接受从 stdObject 扩展的任何对象,包括 valObject。它也适用于接口

于 2013-04-20T14:50:52.730 回答