首页 >后端开发 >php教程 >为什么 PHP 会抛出'严格标准:childClass::customMethod() 的声明应与 ParentClass::customMethod() 的声明兼容”?

为什么 PHP 会抛出'严格标准:childClass::customMethod() 的声明应与 ParentClass::customMethod() 的声明兼容”?

Linda Hamilton
Linda Hamilton原创
2024-12-09 21:40:15361浏览

Why Does PHP Throw

PHP 方法声明中的兼容性

在 PHP 中,错误“严格标准:childClass::customMethod() 的声明应该与“parentClass::customMethod()”表示子类与其父类中的方法声明之间存在差异

可能原因:

当子方法有以下任一情况时,会发生错误:

  • 不同的参数: 方法参数的数量、顺序或数据类型应与父方法的参数相匹配
  • 不同的访问级别:子方法的访问级别(公共、私有或受保护)必须与父方法的访问级别相同或限制更少。

查找兼容性信息:

PHP 使用以下规则来定义方法兼容性:

  • 参数:参数声明的数量和类型必须匹配。
  • 访问级别:子方法访问可以限制性更大(例如,公共对私人),但限制性不能较小(例如,私人对私人) public)。
  • 返回类型:子方法返回类型可以是协变的,这意味着它可以返回父返回类型的子类。

附加文档和有关方法兼容性的示例可以在以下 PHP 手册页中找到:

  • [重载和继承](https://www.php.net/manual/en/language.oop5.overloading.php)
  • [方法可见性](https://www.php.net/manual/en/ language.oop5.visibility.php)
  • [协方差和逆变](https://www.php.net/manual/en/language.oop5.variance.php)

以上是为什么 PHP 会抛出'严格标准:childClass::customMethod() 的声明应与 ParentClass::customMethod() 的声明兼容”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn