Я получаю ошибку с amfphp

Как я могу решить эту проблему? Ошибка: Неустранимая ошибка: использование $ this вне контекста объекта в /.../amfphp/core/amf/app/Gateway.php в строке 134

public static function service() {

        //Set the parameters for the charset handler
        CharsetHandler::setMethod($this->_charsetMethod); // the problem points here
        CharsetHandler::setPhpCharset($this->_charsetPhp);
        CharsetHandler::setSqlCharset($this->_charsetSql);

        //Attempt to call charset handler to catch any uninstalled extensions
        $ch = new CharsetHandler('flashtophp');
        $ch->transliterate('?');

        $ch2 = new CharsetHandler('sqltophp');
        $ch2->transliterate('?');

        $GLOBALS['amfphp']['actions'] = $this->actions;

person tyrlaka    schedule 29.10.2017    source источник


Ответы (1)


Вы не можете использовать $this переменную внутри static методов, потому что экземпляр класса не существует. Статические методы ничего не знают об экземпляре класса, вы можете рассматривать эти методы как class methods, а не instance methods. Похоже, вам нужно удалить модификатор static этой функции. Дополнительные сведения см. В документации.

person Ivan Kalita    schedule 29.10.2017
comment
У меня была ошибка до этого, поэтому я проверял ее в Google, и исправление заключалось в том, чтобы поставить public static перед функцией. Когда я это сделал, ошибка исчезла, но появилась эта ... - person tyrlaka; 29.10.2017
comment
@tyrlaka, вы должны проверить, что такое на самом делеstatic методы и как их использовать. Статические методы / свойства - это не серебряная пуля, они просто часть ООП со своими собственными ограничениями и прибылью. Проверьте документы php.net/manual/en/language.oop5.static.php. Если вам нужна другая помощь - обновите свой вопрос или опубликуйте новый :) - person Ivan Kalita; 29.10.2017