我想在PHP中输入一个特定父对象的提示:
我现在有一个标准的基对象类:
class stdObject
{
private $var;
public function setVar($var)
{
$this->var = $var;
return $this;
}
}
我有一个类对象扩展了这个:
class valObject extends stdObject
{
}
在PHP函数中,我希望能够键入hint,以便函数可以期望具有stdObject
父对象的任何对象,因此发送valObject
将工作,但不能发送anyOldObject
。
这可能吗?
可以使用父类型:
function test(stdObject $obj) {
// ...
}
如果你不想要一个纯stdObject作为参数,而只想要一个继承stdObject的对象,你应该把你的stdObject类抽象或创建一个接口。
这可能吗?
是的,你所描述的正是类型提示的作用。这里是文档
类型提示与实现链一起工作,所以这是有效的:
public function fnc(stdObject $obj)
这将接受从stdObject扩展的任何对象,包括valObject。它也适用于接口