gpt4 book ai didi

php - 多个不相关接口(interface)的类型提示

转载 作者:可可西里 更新时间:2023-11-01 12:44:43 24 4
gpt4 key购买 nike

在 php 中有没有办法为两个不同的、不相关的接口(interface)键入提示?例如:

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(),但这些是由不同的接口(interface)定义。错误不一定是可记录的,反之亦然。

是否有执行此操作的最佳实践?我正在考虑创建一个从 recordable 和 errorable 扩展的接口(interface),并让 upload__module 实现它,但我不知道如何调用它。

最佳答案

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

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

关于php - 多个不相关接口(interface)的类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com