![](/img/trans.png)
[英]How come PHP's in_array() method recognizes the existence of a specific instance of an object, in an array?
[英]How to receive specific interface's array in PHP class method?
我想接收下面代碼中的MyInterface數組。
public function saveMultiple(
\Path\To\MyInterface $attachLinks[]
);
上面的代碼不起作用。
所以請不要告訴我只需刪除\\Path\\To\\MyInterface
並使用變量$attachLinks
。 我已經意識到這一點,但這是我需要的。
php中沒有泛型類型,所以你不能指定類型«數組的東西»。
但你可能會做一個技巧。 檢查數組中的元素類型。
array_walk($attachLinks, function (\Path\To\MyInterface $item) {});
如果將其包裝在斷言中,則可以禁用此檢查。
assert('array_walk($attachLinks, function (\Path\To\MyInterface $item) {})');
到目前為止,這是使用PHP7
可以完成的PHP7
。 直到日期傳遞具有特定類型的數組是不可能的。
public function saveMultiple(
array $attachLinks
);
現在至少要確保該方法只將數組作為參數。
也許你可以使用某種類型的setter:
private $attachLinks = [];
public function setter(MyInterface $var)
{
$this->attachLinks[] = $var;
}
而不是在你的函數中使用$ this-> attachLinks
public function saveMultiple() {
print_r($this->attachLinks);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.