Chinaunix首页 | 论坛 | 博客
  • 博客访问: 329593
  • 博文数量: 84
  • 博客积分: 886
  • 博客等级: 准尉
  • 技术积分: 769
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-30 19:32
文章分类

全部博文(84)

文章存档

2018年(1)

2017年(2)

2014年(1)

2013年(50)

2012年(30)

我的朋友

分类: PHP

2013-10-12 10:40:54


  1. <?php
  2.     abstract class A {
  3.     // 方法无参数
  4.     public static function foo(){ echo 'bar'; }
  5.     }
  6.      
  7.     abstract class B extends A {
  8.     // 方法有参数
  9.     public static function foo($str){ echo $str; }
  10.     }
  11.     ?>

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

解决办法:

  1. <?php
  2.     abstract class A {
  3.     // 方法无参数
  4.     public static function foo(){ echo 'bar'; }
  5.     }
  6.      
  7.     abstract class B extends A {
  8.     // 方法有参数
  9.     public static function foo($str = NULL){ echo $str; }
  10.     }
  11.     ?>

类B在重写foo方法时为新加入的参数指定一个默认值即可。
阅读(1033) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~