Uncaught TypeError: PHP из метода запросов - PullRequest
0 голосов
/ 02 декабря 2018

У меня проблема с PHP 7 в моем коде

Constract Class

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;
}

Вызов метода из класса

Uncaught TypeError: Возвращаемое значение myClass :: getPostDataStructure () должно реализовывать интерфейс FETCH_STRUCTURE, целое число возвращается

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

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

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 02 декабря 2018

Значение FETCH_STRUCTURE::FETCH_ARRAY является целым числом (0), как определено вашей константой в FETCH_STRUCTURE.Вы передаете это значение методу setPostDataStructure, который, в свою очередь, присваивает это значение (0) вашему $this->postDataStructure свойству.

Возвращаемое значение getPostDataStructure определяется как класс FETCH_STRUCTURE но на самом деле вы возвращаете целое число 0.

Если вы намереваетесь вернуть целое число, вы должны сделать следующее:

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

Если вы намереваетесь вернуть экземплярFETCH_STRUCTURE класс, вы должны установить экземпляр этого класса с помощью метода setPostDataStructure.

...