php - 如何强制一组类需要具有可变参数的方法
问题描述
我的应用程序有一组类似的类,它们都需要具有特定名称的方法,但参数的数量是可变的。使用抽象或接口需要扩展/实现类方法使用相同数量的参数。
例如(这不起作用,但本质上是我想要做的)
抽象集合
abstract class Collection
{
abstract public function add ($id, $name);
}
盒子收藏
class BoxCollection extends Collection
{
public function add ($id, $name, $color)
{
$this->data[] = compact('id', 'name', 'color');
}
}
形状集合
class ShapeCollection extends Collection
{
public function add ($id, $name, $edges)
{
$this->data[] = compact('id', 'name', 'edges');
}
}
我知道我可以接受一个关联数组(如果需要的键不存在,可能会检查它并抛出异常)但这对开发人员输入数据时没有帮助,我希望 IDE 能够提示所需的参数。
有没有办法实现这种行为?
解决方案
在通过添加一个有意义的默认值使参数成为可选BoxCollection::add
。color
那时你不会得到任何错误。如果在另一个类中你只想给id
这个方法提供参数,给name
参数一个默认值,可能null
会做。
推荐阅读
- jakarta-ee - 如何在每种测试方法后重置/删除 Quarkus 中的 H2 数据库以使其独立?
- python - 基于多数组(熊猫)的数据框创建新数据
- android - 使用 Room 和 LiveData 执行新的 get 方法后如何刷新 UI?
- c - 如何“破解”缓冲区溢出攻击
- pandas - Pandas - 最后N个元素的滚动总和有条件
- python - 为什么我的 CleanScreen 功能不起作用?
- html - 如何使用 Knitr 块选项删除 R Markdown HTML 输出周围的边框
- r - 太多滚动条闪亮的rhandsontable
- vue.js - 如何根据 vue-router 中的查询参数更新我的数据
- heroku - 如何运行 Heroku 服务器 24/7