2015-10-19 87 views
0

據我所知,強制函數將其參數的typehint作爲一個對象數組沒有辦法(即使在PHP 7中)。函數中的PHP類型聲明(typehint)

我認爲有一個workaroud通過定義另一個對象爲Traversable,這將是所有MyObject的容器,否則將在數組中,並將該提示設置爲該Traversable。

但是,這將是太酷了,如果我能做到這一點:

public function foo(MyObject[] $param) {} 

所以我的問題是,是否有任何理由,PHP沒有實現這一點?

+0

[這個提議](https://wiki.php.net/rfc/ arrayof)但被絕大多數拒絕......雖然它可能還沒有被重新引入 –

+0

謝謝@MarkBaker鏈接RFC。我仍然對此抱有希望。 – meridius

回答

0

我不明白好你的問題,但如果你要插入一個對象中的數據,你可以這樣做:

<?php 
class Insert 
{ 
public $myobject = array(); 

public function foo($insert_in_object, $other_param_in_object) { 
$this->myobject[] = $insert_in_object; 
$this->myobject[] = $other_param_in_object; 
return $this->myobject; 
} 

} 

$start = new Insert(); 
$myobject = $start->foo('dog', 'cat'); 
var_dump($myobject) 
?> 
+0

我建議你閱讀[RFC](https://wiki.php.net/rfc/arrayof) – meridius