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()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |