您的位置:首页 > 编程语言 > PHP开发

php 方法重写,参数不同,报错: Declaration of should be compatible with that

2012-03-30 11:41 363 查看
问题详细描述为:https://bugs.php.net/bug.php?id=46851

<?php

abstract class A {

// 方法无参数

public static function foo(){ echo 'bar'; }

}

abstract class B extends A {

// 方法有参数

public static function foo($str){ echo $str; }

}

?>

如上面的代码:类A中的foo方法无参数,类B在继承A后重写foo方法时加入了参数,因此会产生一个类似下面E_STRICT级别的警告:

Strict standards: Declaration of ... should be compatible with that of ...


解决方法:

<?php

abstract class A {

// 方法无参数

public static function foo(){ echo 'bar'; }

}

abstract class B extends A {

// 方法有参数

public static function foo($str = NULL){ echo $str; }

}

?>

类B在重写foo方法时为新加入的参数指定一个默认值即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐