php - 在 PHP 7.4+ 中,当父/超类的参数无类型时,相反的参数是否有意义?
问题描述
考虑一个像这样的接口
interface Validator { validate($x) : bool }
理想情况下,实现的类将允许类型化参数:
class ValidatorPositiveInteger(int $x);
class ValidatorAlphabetic(string $x);
由于 Liskov 替换原则的参数扩展方面,编译器当前不允许为具体类键入参数。但是当接口/父类对参数类型没有限制时,这种限制真的有必要或可取吗?由于 validate 方法未指定参数类型,因此该接口是“坏接口”吗?
解决方案
推荐阅读
- php - Ratchet 客户端身份验证失败
- c++ - CLion 无法给出建议、语法高亮等
- sql - where 和 order by 子句的多列索引(postgres)
- javascript - 快递请求正文显示为空
- swagger - 如何让 OpenAPI/Swagger 忽略模型的某些属性?
- django - 使用 Django 接收电子邮件的问题
- linux - 在 AWS Lambda 上安装库插件/二进制文件
- android - 应用消息传递中的 Firebase(实现 'com.google.firebase:firebase-inappmessaging-display:19.1.5')与 Android 中的 gRPC 之间的冲突
- tkinter - 如何正确使用 tkinter 滚动条?
- javascript - 基于Django的在线考试平台考试准入时间控制系统