2011-06-29 9 views
8

私は特定のクラスのメンバーを取る機能があります。PHP関数引数:特定のクラスのオブジェクトの配列

私はMy_Pageオブジェクトの配列を受け取り、別の機能をしたいのですが。

public function addPages($pages) 
{ 
    // ... 
} 

$ pages配列の各要素がMy_Pageのインスタンスであることを確認する必要があります。私はforeach($pages as $page)でそれを行い、instance ofをチェックすることができますが、何とか関数定義で配列がMy_Pageオブジェクトの配列でなければならないと指定できますか?即興など:

public function addPages(array(My_Page)) // I realize this is improper PHP... 

ありがとう!

答えて

8

いいえ、直接行うことはできません。

public function addPages(array $pages) 
{ 
    foreach($pages as $page) addPage($page); 
} 

public function addPage(My_Page $page) 
{ 
    // 
} 

しかし、それはすべてのトラブルの価値があるかどうかは分かりません。 addPageが単独で役に立つ場合は、良いアプローチになります。

0

代わりにオブジェクトの配列(array(My_Page))を渡すのでは、独自のクラスを定義し、あなたの関数内でのインスタンスが必要になります。

class MyPages { ... } 

public function addPages(MyPages pages) 
関連する問題