【问题标题】:Child method compatible with parent method in PHP 5.4子方法与 PHP 5.4 中的父方法兼容
【发布时间】:2014-08-25 19:50:36
【问题描述】:

最近,由于子/父方法比较,我开始使用 5.4 PHP Server 受苦。我确实理解错误,但我不理解这个概念。 PHP为什么要实现这个?以下快照代码是不良行为吗?为什么这是一种不良行为?既然签名必须兼容,如何在子类中“正确”构建“快捷方式”?

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);
      }    
}

【问题讨论】:

    标签: php inheritance overriding php-5.4


    【解决方案1】:

    可能是这样的:

    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);
          }    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 2020-11-07
      • 2015-07-05
      • 2016-06-11
      • 2023-03-31
      相关资源
      最近更新 更多