与PHP 5.4中的父方法兼容的子方法

时间:2014-08-25 19:50:37

标签: php inheritance method-overriding php-5.4

最近,由于子/父方法的比较,我开始患上5.4 PHP服务器。我确实理解错误,但我不理解这个概念。 为什么PHP实现这个?以下snap-code是不良行为?为什么这是一个不好的行为?如何"正确"建立一个"快捷方法"在子类中,签名必须兼容吗?

Class File {
      public function validate($exts, $maxSize){
          // Validate if this->flie is valid according to extension and size.
      }

}

Class Image extends File {
      public function validate($maxSize){
         $exts = array("jpeg", "jpg", "png", "gif");
         return parent::validate($exts, $maxSize);
      }    
}

1 个答案:

答案 0 :(得分:2)

也许是这样的:

Class File {
      public function validate($maxSize, $exts){
          // if !is_array || empty $exts throw exception
          // Validate if this->file is valid according to extension and size.
      }

}

Class Image extends File {
      public function validate($maxSize, $exts=array()){
         $exts = array("jpeg", "jpg", "png", "gif");
         return parent::validate($maxSize, $exts);
      }    
}