Tôi có một chức năng tương đối đơn giản trong đó sử dụng một foreach
PHP loại traversable gợi ý
function foo($t) {
$result;
foreach($t as $val) {
$result = dosomething($result, $val);
}
return $result;
}
Tôi muốn gõ gợi ý, và Traversable
có vẻ là kiểu gợi ý chính xác tôi cần
function foo(Traversable $t) {
Tuy nhiên điều này cung cấp cho một E_RECOVERABLE_ERROR
khi sử dụng một mảng (tất nhiên là có thể sử dụng được trong một số foreach
): example
Argument 1 passed to foo() must implement interface Traversable, array given
Có cách nào để nhập gợi ý hoặc điều này là không thể?
Từ hướng dẫn (liên kết mà bạn đã đăng): 'Giao diện cơ bản trừu tượng không thể được triển khai một mình. Thay vào đó nó phải được thực hiện bởi IteratorAggregate hoặc Iterator.' – alfasin
Tôi tin rằng bạn thực sự có thể sử dụng 'mảng' làm gợi ý, tôi sẽ kiểm tra lý thuyết của tôi, có bạn có thể – Dale
@alfasin Và như vậy bất kỳ lớp nào thực hiện' Iterator' cũng sẽ khớp 'Traversable', như' Iterator' là một kiểu con của 'Traversable'. Cơ bản OOP-cơ học – dtech