PHP中强制模式与严格模式,PHP严格模式 Strict standards: Declaration of xxxxxx should be compatible with yyyyyy...

如下图所示,即为 在PHP严格检查下 出现的警告:

0818b9ca8b590ca3270a3433284dd417.png

警告规则 (如):Strict standards: Declaration of xxxxxx should be compatible with yyyyyy

上图所示的意思是:在PHP 大于5.4的版本中,使用了 PHP的严格模式 检查程序,检测结果为 Index模块中的 clearcache()方法 必须兼容 父类Mytpl类中 定义的clearcache()方法,即 子类覆写父类的方法时 必须一致,包括 参数个数一致、参数如果没有值 则需要定义其默认值!

此为 父类Mytpl类中 定义的 clearCache()方法,有5个参数:

0818b9ca8b590ca3270a3433284dd417.png

此为 子类Index类中 定义的 clearcache()方法,没有参数:

0818b9ca8b590ca3270a3433284dd417.png

正如上述2幅图所示,子类在不小心的情况下 使用了 父类中定义的方法,但又没有按父类的方法 在子类中定义,所以 出现了 上述的警告!

总结:

在不知道 使用的父类(如外部的Smarty类)中 定义了 哪些方法的情况下,在其子类中 定义方法名时 需要避免 与父类中的方法名 重名,最好的方法是 检测 子类的方法名 是否在父类中 已经定义了!

如在子类的某个方法中 使用 以下2句 进行检测:

$res = method_exists( $this, "clearcache");

var_dump( "res=", $res );

如果 res 为true,说明 clearcache()方法 已经 在子类或其父类中 存在,此方法名 不能使用,需要 定义 新的方法名! 如果 想覆写 父类中的 clearcache()方法,则 需要 按照父类的格式 进行覆写,参数个数一致,参数名可以不同,参数不存在时 需要使用默认值 才能保证 覆写父类方法正确!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值