PHP7.2如何处理父类方法被忽略与Liskov替换原则冲突问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1728个文字,预计阅读时间需要7分钟。
PHP 7.2 子类覆盖方法注意事项:- 参数类型功能- Liskov 替换原则
PHP 7.2 新版本更新:- 新增功能- 优化与改进
关注 PHP 发展,建议查看相关文档。以下为简述:
PHP 7.2 子类覆盖方法:- 注意参数类型- 遵循 Liskov 替换原则
PHP 7.2 新版本:- 新增特性- 优化改进- 发展关注
细说 PHP 7.2 子类覆盖方法省略参数类型功能以及 Liskov 替换原则
PHP 7.2 出来也有段时间了,关于新版本有什么新改进,只要你关心 PHP 的发展,应该都看过。这里只细说一个可能会有误解的新功能。
PHP 7.2 可以在当子类覆盖(override)父类方法的时候,忽略父类方法的定义的参数的类型(type hint):
class Foo { public function bar(SomeClass $obj) {} } class Foobar extends Foo { public function bar($obj) {} // 这在 PHP7.2 版本之前是会报错的 }
我看有些网站介绍此功能的时候,说其目的是为了『方便重构。如果以后父类方法的参数类型变了,子类不用再全部换一遍』。听起来好像很有道理。按这说法,隐含的意思是:如果子类忽略了父类方法参数类型,被调用时还是会检查参数类型。
本文共计1728个文字,预计阅读时间需要7分钟。
PHP 7.2 子类覆盖方法注意事项:- 参数类型功能- Liskov 替换原则
PHP 7.2 新版本更新:- 新增功能- 优化与改进
关注 PHP 发展,建议查看相关文档。以下为简述:
PHP 7.2 子类覆盖方法:- 注意参数类型- 遵循 Liskov 替换原则
PHP 7.2 新版本:- 新增特性- 优化改进- 发展关注
细说 PHP 7.2 子类覆盖方法省略参数类型功能以及 Liskov 替换原则
PHP 7.2 出来也有段时间了,关于新版本有什么新改进,只要你关心 PHP 的发展,应该都看过。这里只细说一个可能会有误解的新功能。
PHP 7.2 可以在当子类覆盖(override)父类方法的时候,忽略父类方法的定义的参数的类型(type hint):
class Foo { public function bar(SomeClass $obj) {} } class Foobar extends Foo { public function bar($obj) {} // 这在 PHP7.2 版本之前是会报错的 }
我看有些网站介绍此功能的时候,说其目的是为了『方便重构。如果以后父类方法的参数类型变了,子类不用再全部换一遍』。听起来好像很有道理。按这说法,隐含的意思是:如果子类忽略了父类方法参数类型,被调用时还是会检查参数类型。

