PHP方法重写时参数引起的Declaration of should be compatible解决办法

提示内容:Declaration of … should be compatible with that of …

PHP官方问题详细描述为:https://bugs.php.net/bug.php?id=46851
如上面的代码:类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方法时为新加入的参数指定一个默认值即可。