У меня есть одна страница на моем сайте с 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('?');
Как я могу это исправить?
По-видимому, функция 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, действительно статические.
Других решений пока нет …