如何接收特定接口';PHP类方法中的数组?

如何接收特定接口';PHP类方法中的数组?,php,arrays,namespaces,Php,Arrays,Namespaces,我想接收MyInterface的数组,如下代码所示 public function saveMultiple( \Path\To\MyInterface $attachLinks[] ); 上面的代码不起作用 所以请不要告诉我只需删除\Path\To\MyInterface并使用变量$attachLinks。我已经意识到这一点,但这是我需要的 php中没有泛型类型,因此不能指定类型«数组类型» 但你可以耍个花招。检查数组中元素的类型 array_walk($attachLinks, f

我想接收MyInterface的数组,如下代码所示

public function saveMultiple(
    \Path\To\MyInterface $attachLinks[]
);
上面的代码不起作用


所以请不要告诉我只需删除
\Path\To\MyInterface
并使用变量
$attachLinks
。我已经意识到这一点,但这是我需要的

php中没有泛型类型,因此不能指定类型«数组类型»

但你可以耍个花招。检查数组中元素的类型

array_walk($attachLinks, function (\Path\To\MyInterface $item) {});
如果将其包装在assert中,则可以禁用此检查

assert('array_walk($attachLinks, function (\Path\To\MyInterface $item) {})');

php中没有泛型类型,因此不能指定类型«数组类型»

但你可以耍个花招。检查数组中元素的类型

array_walk($attachLinks, function (\Path\To\MyInterface $item) {});
如果将其包装在assert中,则可以禁用此检查

assert('array_walk($attachLinks, function (\Path\To\MyInterface $item) {})');

也许您可以使用一些setter类型,如:

private $attachLinks = [];
public function setter(MyInterface $var)
{
    $this->attachLinks[] = $var;
}
然后在函数中使用$this->attachLinks

public function saveMultiple() {
    print_r($this->attachLinks);
}

也许您可以使用一些setter类型,如:

private $attachLinks = [];
public function setter(MyInterface $var)
{
    $this->attachLinks[] = $var;
}
然后在函数中使用$this->attachLinks

public function saveMultiple() {
    print_r($this->attachLinks);
}

到目前为止,这是使用
PHP7
可以完成的。不可能使用特定类型的日期传递数组

public function saveMultiple(
    array $attachLinks
);

现在至少要确保该方法只获取数组作为参数。

到目前为止,这是使用
PHP7
可以完成的。不可能使用特定类型的日期传递数组

public function saveMultiple(
    array $attachLinks
);

现在至少可以确保该方法只获取数组作为参数。

您使用了哪个php版本?很好,我在寻找,您节省了我的时间:)您使用了哪个php版本?很好,我在寻找,您节省了我的时间:)这不会达到强制传递数组类型接口的目的。是的。这不完全是你想要的。这是一种变通方法,允许您确保不会使用数组中的错误项执行代码。这不会达到强制传递数组类型的接口的目的。是的。这不完全是你想要的。这是一种变通方法,允许您确保代码不会在数组中使用不正确的项执行。在此处投票否决的人还必须注释并解释原因。你如何才能更好地判断我所问的问题???在这里投反对票的人也必须评论并解释原因。你怎么能更好地判断我问的问题???