未捕获的TypeError:来自请求方法的PHP

时间:2018-12-02 14:09:51

标签: php typeerror php-7

我的代码中有PHP 7问题

合同类

class FETCH_STRUCTURE{
    const FETCH_ARRAY     = 0;
    const FETCH_OBJECT    = 1;}

另一个类中的方法

public function setPostDataStructure(FETCH_STRUCTURE $postDataStructure)
    {
            $this->postDataStructure = $postDataStructure;
    }

function getPostDataStructure():FETCH_STRUCTURE {
    return $this->postDataStructure;
}

从类中调用方法

  

未捕获的TypeError:myClass :: getPostDataStructure()的返回值必须实现接口FETCH_STRUCTURE,返回的整数

$this->view->setPostDataStructure(  FETCH_STRUCTURE::FETCH_ARRAY );

echo $this->view->getPostDataStructure();

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

FETCH_STRUCTURE::FETCH_ARRAY的值是由0中的常量定义的整数(FETCH_STRUCTURE)。您正在将该值传递给setPostDataStructure方法,该方法又将该值(0)分配给您的$this->postDataStructure属性。

getPostDataStructure的返回值被定义为类FETCH_STRUCTURE,但实际上您正在返回整数0

如果您打算返回整数,则应执行以下操作:

function getPostDataStructure():int {
    return $this->postDataStructure;
}

如果您打算返回FETCH_STRUCTURE类的实例,则应该使用setPostDataStructure方法设置该类的实例。