php包装类中的instanceof错误

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php包装类中的instanceof错误脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
开始为预定义的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());
}

脚本宝典总结

以上是脚本宝典为你收集整理的php包装类中的instanceof错误全部内容,希望文章能够帮你解决php包装类中的instanceof错误所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。