我的代码中有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();
我该如何解决这个问题?
答案 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
方法设置该类的实例。