2011-06-29 176 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)