php包装类中的instanceof错误
发布时间:2020-12-13 16:42:28 所属栏目:PHP教程 来源:网络整理
导读:我开始为预定义的php包编写一个包装类.以下是课程: class phpclass1 :: ping() :: __construct(array $options) :: clear() :: addDoc(phpclass2 $string)...class phpclass2 :: __construct() :: update()... 以下是我为上述2类编写的包装类: class wrapp
|
我开始为预定义的php包编写一个包装类.以下是课程:
class phpclass1
:: ping()
:: __construct(array $options)
:: clear()
:: addDoc(phpclass2 $string)
...
class phpclass2
:: __construct()
:: update()
...
以下是我为上述2类编写的包装类: class wrapper1 {
private $conn;
public function __construct(phpclass1 $object) {
$this->conn = $object;
}
public function add(wrapper2 $document) {
return $this->conn->addDoc($document);
}
}
class wrapper2 extends phpclass2 {
private $doc;
public function __construct() {
$this->doc = new phpclass2();
}
}
Here's how I'm using them:
$options = array (...);
$object = new phpclass1($options);
$conn = new wrapper1($object);
$doc = new wrapper2();
....
....
$conn->add($doc);
一切正常,直到我使用add函数.它给出一个错误:参数1传递给phpclass1 :: addDoc()必须是一个phpclass2的实例,wrapper2的实例给定 我失踪了什么我已经尝试了许多事情,但完全失去了这里.
你已经定义了
class phpclass1 :: addDoc(phpclass2 $string) 该方法期望参数是phpclass2的对象,但您正在传递 return $this->conn->addDoc($document); 通过 $conn->add($doc); 而$doc是wrapper2的对象,而不是phpclass2 修复添加一个新的公共方法 wrapper2::getDoc()
public function add(wrapper2 $document) {
return $this->conn->addDoc($document->getDoc());
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |








