php - 致命错误:未捕获错误:函数名称必须是 php/class-style-generator.php 中的字符串
问题描述
我在两个站点上遇到以下错误:
致命错误:未捕获错误:函数名称必须是 /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";
}
}
}
解决方案
检查变量是否是一个字符串,不仅是它被设置,而且特别是它也是一个字符串。
if(is_string($rule['key']) && method_exists($this, $rule['key']) && $rule['value'] != "")
选择:
写得稍微短一点,论点少一点。无论如何,这都会强制该值是一个字符串;这取决于您的代码库是否适合您。
if(method_exists($this, (string)$rule['key']) && $rule['value'] != "")
请注意,此答案不能解决有时您的函数将非字符串作为潜在方法处理的问题。
推荐阅读
- java - 如何复制 JButton 操作并更改其对基础对象的引用?
- android - 在 ExpandableListview 子视图的 textview 底部动态添加图片
- python - 从多个文本文件中读取一定数量的单词并保存为新文件
- android - 实现深色主题
- javascript - 日期选择器不工作(ASP.NET MVC)
- java - 重用同一个对象变量来创建多个对象
- java - 电报 Javabot。设置 webhook
- python - 如何正确使用范围 https://www.googleapis.com/auth/drive.file
- python - 如何使用卡方检验从文档中计算关键术语?
- android - 底部导航栏不显示图标或文本