【问题标题】:Fatal error: Uncaught Error: Function name must be a string in php/class-style-generator.php致命错误:未捕获错误:函数名称必须是 php/class-style-generator.php 中的字符串
【发布时间】:2019-03-04 21:15:37
【问题描述】:

我在两个网站上遇到以下错误:

致命错误:未捕获的错误:函数名称必须是字符串 /home/lanesra2/public_html/wp-content/themes/Lanesra/framework/php/class-style-generator.php:123 堆栈跟踪:#0 /home/lanesra2/public_html/wp-includes/class-wp-hook.php(286):

我已经很久没有登录这些网站了,正如你所见,它们都是基于 WordPress 构建的。有什么可以解决的潜在变化吗?

这里也是代码:

{
            foreach($this->rules as $rule)
            {

                $rule['value'] = str_replace('{{AVIA_BASE_URL}}', AVIA_BASE_URL, $rule['value']);
                $rule['value'] = preg_replace('/(http|https):\/\//', '//', $rule['value']);

                //check if a executing method was passed, if not simply put the string together based on the key and value array
                if(isset($rule['key']) && method_exists($this, $rule['key']) && $rule['value'] != "")
                {
                    $this->output .= $this->$rule['key']($rule)."\n";
                }
                else if($rule['value'] != "")
                {
                    $this->output .= $rule['elements']."{\n".$rule['key'].":".$rule['value'].";\n}\n\n";
                }

            }
        }

【问题讨论】:

  • 听起来$rule['key'] 不是字符串。可以是整数吗?当您收到此错误时,它的价值是什么?

标签: php wordpress fatal-error


【解决方案1】:

检查变量is a string,不仅是它被设置,而且特别是它也是一个字符串。

if(is_string($rule['key']) && method_exists($this, $rule['key']) && $rule['value'] != "")

替代方案:

写得稍微短一点,论点也少一点。这强制值是一个字符串,无论如何;这取决于您的代码库是否适合您。

if(method_exists($this, (string)$rule['key']) && $rule['value'] != "")

请注意,此答案不能解决有时您的函数将非字符串作为潜在方法处理的问题。

【讨论】:

  • 谢谢大家,@martin 我实际上不知道错误可能是什么。我无论如何都不是开发人员,我建立这个网站是为了帮助朋友。我将在哪里编辑此字符串?
  • 你对我有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
相关资源
最近更新 更多