你能帮我解决这个问题吗?警告:sprintf():参数太少?

时间:2017-09-07 05:13:30

标签: php wordpress

我遇到了这个问题

错误:

  

(警告:sprintf():参数太少

从主题安装插件后

。我还在学习PHP。有些人可以帮助修复这个错误引用的代码。

这是代码:

if ( $this->result && ! is_wp_error( $this->result ) ) {
    if ( ! $this->error ) {
        echo '<div class="updated js-update-details" data-update-details="progress-' . esc_attr( $this->upgrader->update_current ) . '">' .
             '<p>' . sprintf( $this->upgrader->strings['skin_update_successful'], $title ) .
             ' <button type="button" class="hide-if-no-js button-link js-update-details-toggle" aria-expanded="false">' . __( 'Show details.' ) . '</button>' .
             '</p></div>';
    }

    echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').hide();</script>';
}

2 个答案:

答案 0 :(得分:0)

此警告消息表示$this->upgrader->strings['skin_update_successful']拥有更多占位符(如%s),而不是将变量传递到sprintf(仅传递$title)。只需检查$this->upgrader->strings['skin_update_successful']中的字符串(您可以打印出来)。

例如,此代码将抛出相同的警告消息:

<?php
sprintf('foo %s %s', 'bar');

答案 1 :(得分:0)

就我而言:

$data = call_web_service(); // return array()
foreach ($data as $d)
echo sprintf("<div>our %65 discount is : %s </div>",
$d["discount"]
);

在我的字符串中使用%65

sprintf搜寻每一个%,如果它们的计数不等于您的参数,则会返回此错误