Я получаю сообщение об ошибке при выполнении файла amfphp

У меня есть одна страница на моем сайте с Flash, но у меня есть проблема.
Когда я пытаюсь выполнить dircetly файл site.com/amfphp/gateway.php, я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение «VerboseException» с сообщением
Нестатический метод CharsetHandler :: setMethod () не должен вызываться
статически, предполагая $ this из несовместимого контекста ‘в ….

function service() {

//Set the parameters for the charset handler
CharsetHandler::setMethod($this->_charsetMethod); // the problem point 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('?');

Как я могу это исправить?

1

Решение

По-видимому, функция setMethod класса CharsetHandler не является статической. Это означает, что вы не можете вызвать его, если у вас нет экземпляра этого класса. Предложение Александра вызывать setMethod в каждом из двух экземпляров является уместным. Ваш код должен читать:

function service() {

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

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

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

Это должно работать, если два других метода, которые вы вызываете static, действительно статические.

0

Другие решения

Других решений пока нет …