加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP – 使用不同数量的参数覆盖函数

发布时间:2020-12-13 13:31:45 所属栏目:PHP教程 来源:网络整理
导读:我正在扩展一个类,但在某些情况下我会覆盖一个方法.有时在2个参数中,有时在3个,有时没有参数. 不幸的是我收到了PHP警告. 我的最小可验证示例: http://pastebin.com/6MqUX9Ui ?phpclass first { public function something($param1) { return 'first-'.$para
我正在扩展一个类,但在某些情况下我会覆盖一个方法.有时在2个参数中,有时在3个,有时没有参数.

不幸的是我收到了PHP警告.

我的最小可验证示例:
http://pastebin.com/6MqUX9Ui

<?php

class first {
    public function something($param1) {
        return 'first-'.$param1;
    }
}

class second extends first {
    public function something($param1,$param2) {
        return 'second params=('.$param1.','.$param2.')';
    }
}

// Strict standards: Declaration of second::something() should be compatible with that of first::something() in /home/szymon/webs/wildcard/www/source/public/override.php on line 13

$myClass = new Second();
var_dump( $myClass->something(123,456) );

我收到PHP错误/警告/信息:

我怎样才能防止这样的错误?

您可以轻松地重新定义方法添加新参数,只需要新参数是可选的(在您的签名中具有默认值).见下文:
class Parent
{
    protected function test($var1) {
        echo($var1);
    }
}

class Child extends Parent
{
    protected function test($var1,$var2 = null) {
        echo($var1);
        echo($var1);
    }
}

有关更多详细信息,请查看链接:http://php.net/manual/en/language.oop5.abstract.php

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读