【问题标题】:wordpress sprintf PHP errorwordpress sprintf PHP错误
【发布时间】:2011-10-27 20:55:32
【问题描述】:

我收到此错误:

警告:sprintf() [function.sprintf]:参数太少 /home/xxxxxxxx/public_html/wp-content/plugins/surveys/wpframe.php 第 53 行

代码读取...

if(!function_exists('t')) {
/// Globalization function - Returns the transilated string
function t($message) {
    $args = func_get_args();
    return __(call_user_func_array('sprintf', $args), $GLOBALS['wpframe_plugin_name']);
}
}

知道有什么问题吗?

【问题讨论】:

  • 在“调查”插件中调用该函数的操作不正确。我发现 Wordpress 插件参差不齐。我总是添加错误检查。通常,在生产环境中运行 Wordpress 时关闭错误。
  • 我想了解更多关于“在生产环境中运行 Wordpress 时关闭错误”业务的信息。这样做简单吗?
  • 在 php.ini 中将 display_errors = Off 和 error_reporting 设置为我不记得的东西。文件中的 cmets 解释。还要确保 wp-config.php 有 WP_DEBUG = false。

标签: php wordpress printf


【解决方案1】:

sprintf 至少需要 2 个参数:一个格式字符串和一个要插入该格式字符串的值列表。例如

sprintf('This is a %d decimal and this is a %s string', 42, 'xxx');

2个格式字符,所以需要填写2个值。对于格式字符串中的每个格式字符,必须指定一个匹配值。

在您收到错误时,您的 $args 变量中有什么内容?

【讨论】:

  • 我已经更新了我的问题以包含更多关于第 53 行的代码。非常抱歉,但 PHP 不是我的强项,我不确定如何找到你的内容我问过...
  • 好的。在 call_user_func 业务之前执行var_dump($args),它将以可读格式转储 $args 的内容。
  • 让一个朋友和我一起研究了这个问题,我们解决了这个问题。感谢您为我指明正确的方向。
  • 关于解决方案的任何细节?
猜你喜欢
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多