是否有(已经)将类型化数组定义为PHP中的输入参数的方法(如泛型)?

时间:2018-12-20 11:19:33

标签: java php generics parameters typed-arrays

看看下面的Java代码:

  public int birdy(List<Bird> birds) {
    birds.get(0).twitter();
    return birds.size();
  }

如果您传递了一个空头清单,编译器会抱怨,这是有道理的,因为空头不能鸣叫。我在PHP中也有类似情况:

function create(string $notes, array $options = []): bool {
    // ...
}

$options中的每个元素都必须是Option类的实例。当然,我的第一个想法是像在Java中那样使用泛型-2016年似乎有一个RFC尚未实现或批准:https://wiki.php.net/rfc/generics

因此,我想知道是否有比这更好的方法了?

function create(string $notes, array $options = []): bool {
    foreach($options as $option) {
        if(!($option instanceof Option)) {
            throw new Exception("Wrong type for option");
        }
    }
    // ...
}

因为这很笨拙。

0 个答案:

没有答案