加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为多个不相关的接口提供类型提示

发布时间:2020-12-13 18:13:47 所属栏目:PHP教程 来源:网络整理
导读:在php中有没有办法为两个不同的,无关的接口输入提示?例如: interface errorable { function error($msg);}interface recordable { ssh_for_recorder();}class uploader__module extends base__module implements errorable,recordable { public function s
在php中有没有办法为两个不同的,无关的接口输入提示?例如:
interface errorable {
   function error($msg);
}

interface recordable {
   ssh_for_recorder();
}

class uploader__module extends base__module implements errorable,recordable {
   public function ssh_for_recorder() {
      return new ssh2;
   }
   public function error($msg) {
      $this->errors[] = $msg;
   }

   public function upload() {
      $recorder = new recorder($this);
      $recorder->run();
   }
}

class recorder {
   private $ssh2;
   private $module;
   private function upload() {
      if (!$this->ssh2) {
         $this->module->error("No SSH2 connection");
      }
   }
   public function __construct({recordable,errorable} $module) {
      $this->module = $module;
      $this->ssh2 = $module->ssh_for_recorder();
   }
}

正如您在上面的代码中所看到的,记录器类期望其模块能够同时运行error()和ssh_for_recorder(),但这些是由不同的接口定义的.不可能是不可记录的,反之亦然.

这样做有最好的做法吗?我正在考虑创建一个从可记录和错误扩展的接口,并具有upload__module实现,但我不知道该怎么称呼它.

不,这在php中是不可能的.

还有其他支持此功能的语言(主要是功能性的)称为联合类型(http://en.wikipedia.org/wiki/Sum_type).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读