首页 > 解决方案 > 在 PHP 7.4+ 中,当父/超类的参数无类型时,相反的参数是否有意义?

问题描述

考虑一个像这样的接口

interface Validator { validate($x) : bool }

理想情况下,实现的类将允许类型化参数:

class ValidatorPositiveInteger(int $x);
class ValidatorAlphabetic(string $x);

由于 Liskov 替换原则的参数扩展方面,编译器当前不允许为具体类键入参数。但是当接口/父类对参数类型没有限制时,这种限制真的有必要或可取吗?由于 validate 方法未指定参数类型,因此该接口是“坏接口”吗?

标签: phptypesparametersinterface

解决方案


推荐阅读