Nik*_*mov 12 php arrays arguments function object
我有一个函数,它接受一个特定类的成员:
public function addPage(My_Page $page)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想创建另一个带有My_Page对象数组的函数:
public function addPages($pages)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我需要确保$ pages数组的每个元素都是My_Page的一个实例.我可以用foreach($pages as $page)和检查instance of,但我可以在函数定义中以某种方式指定数组必须是My_Page对象的数组吗?即兴创作,如:
public function addPages(array(My_Page)) // I realize this is improper PHP...
Run Code Online (Sandbox Code Playgroud)
谢谢!
Jon*_*Jon 14
不,不可能直接做.您可以尝试这种"聪明"的技巧:
public function addPages(array $pages)
{
foreach($pages as $page) addPage($page);
}
public function addPage(My_Page $page)
{
//
}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否值得所有的麻烦.如果addPage它本身有用,那将是一个很好的方法.
bar*_*hin 10
您还可以添加 PhpDoc 注释以在 IDE 中自动完成
/**
* @param My_Page[] $pages
*/
public function addPages(array $pages)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)