我执行amfphp文件时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我执行amfphp文件时出错相关的知识,希望对你有一定的参考价值。

我的网站上有一个带闪存的页面,但我有问题。当我尝试执行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('?');

我怎样才能解决这个问题?

答案

显然,CharsetHandler类的setMethod函数不是静态的。这意味着除非您拥有该类的实例,否则无法调用它。亚历山大建议在两个实例中的每个实例上调用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('?');

如果您静态调用的其他两个方法确实是静态的,那么这应该有效。

以上是关于我执行amfphp文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

android.view.InflateException:二进制 XML 文件第 15 行:二进制 XML 文件第 19 行:膨胀类片段时出错

当我切换到包含片段的活动时应用程序崩溃(二进制 XML 文件第 10 行:二进制 XML 文件第 10 行:膨胀类片段时出错)

第 7 行的 InflateException 二进制 XML 文件:膨胀类片段时出错

android.view.InflateException:二进制 XML 文件:膨胀类片段时出错

二进制 XML 文件第 13 行:膨胀类片段时出错

导出eclipse可部署插件和片段时出错