PHP 函数参数:特定类的对象数组

2022-08-30 21:53:42

我有一个函数,它接受特定类的成员:

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

我想创建另一个函数,它采用My_Page对象数组:

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

我需要确保数组的每个元素都是My_Page$pages实例。我可以这样做并检查 ,但是我是否可以在函数定义中以某种方式指定数组必须是My_Page对象的数组?即兴创作,比如:foreach($pages as $page)instance of

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

谢谢!


答案 1

不,不能直接做。你可以试试这个“聪明”的技巧:

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

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

但我不确定这是否值得所有的麻烦。如果它本身有用,那将是一个好方法。addPage


答案 2

您还可以添加PhpDoc注释以在IDE中自动完成

    /**
     * @param My_Page[] $pages
     */
    public function addPages(array $pages)
    {
      // ...
    }