【问题标题】:How to override a parents class method and change params?如何覆盖父类方法并更改参数?
【发布时间】:2017-06-16 12:36:05
【问题描述】:

我正在扩展一个类:

class Foo extends Bar

我有一个覆盖父类方法的方法:

myMethod($param1, $param2)

我现在希望在我的子类中添加一个额外的参数,但是我收到了一个兼容性错误。例如。

myMethod($param1, $param2, $param3)

覆盖父类方法以便我可以更改参数的正确方法是什么?

请注意,我无法以任何方式更改父类。

【问题讨论】:

  • 看看this SO question。
  • 你可以使用可选参数吗? PHP 不支持重载,它通过允许可选参数来实现。

标签: php


【解决方案1】:

如果你不能改变父类怎么添加setParam3($param3) and getParam3()方法,所以在调用myMethod之前调用setParam3然后在你的子类中

myMethod($param1, $param2)
{
    $param3 = $this->getparam3();
    // rest of code
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    相关资源
    最近更新 更多