首页 > 解决方案 > 未捕获的 TypeError:来自请求方法的 PHP

问题描述

我的代码中有 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();

我该如何解决这个问题?

标签: phptypeerrorphp-7

解决方案


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

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

如果您打算返回一个整数,您应该这样做:

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

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


推荐阅读