PHP严格错误

时间:2013-10-30 10:04:15

标签: php wordpress

我一直在error_log中得到这些PHP错误,无法弄清楚如何解决它:

错误:

PHP Strict Standards:  Non-static method wf_gmap::check_wp_footer() should not be called statically in /home/USERNAME/public_html/WEBSITE/wp-content/plugins/5sec-google-maps/5sec-gmaps.php on line 25

PHP Notice:  Use of undefined constant is_admin - assumed 'is_admin' in /home/USERNAME/public_html/WEBSITE/wp-content/plugins/5sec-google-maps/5sec-gmaps.php on line 21

PHP Strict Standards:  call_user_func_array() expects parameter 1 to be a valid callback, non-static method wf_gmap::init() should not be called statically in /home/USERNAME/public_html/WEBSITE/wp-includes/plugin.php on line 429

和5sec-gmaps.php文件从17到44的行是这样的:

class wf_gmap {
  static $js_functions = '';

public function init() {
if(is_admin) {
  add_filter('plugin_row_meta', array(__CLASS__, 'plugin_meta_links'), 10, 2);
}
// check wp_footer()
self::check_wp_footer();

// add shortcode
global $shortcode_tags;
if (isset($shortcode_tags[GMAP_SHORTCODE])) {
  add_action('admin_footer', array(__CLASS__, 'warning'));
} else {
  add_shortcode(GMAP_SHORTCODE, array(__CLASS__, 'shortcode'));
}

// add JS include files
add_action('wp_footer', array(__CLASS__, 'footer'), 2);

// add shortcode support in sidebar text widget
if (has_filter('widget_text', 'do_shortcode') === false) {
  add_filter('widget_text', 'do_shortcode');
}

return;

和plugin.php从418到434的行:

    // Sort
if ( !isset( $merged_filters[ $tag ] ) ) {
    ksort($wp_filter[$tag]);
    $merged_filters[ $tag ] = true;
}

reset( $wp_filter[ $tag ] );

do {
    foreach ( (array) current($wp_filter[$tag]) as $the_ )
        if ( !is_null($the_['function']) )
            call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));

} while ( next($wp_filter[$tag]) !== false );

array_pop($wp_current_filter);

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您正在使用static上下文调用成员方法。

self::check_wp_footer();应为$this->check_wp_footer();

同样,无论$the_['function']必须引用静态方法。

答案 1 :(得分:0)

PHP严格标准:非静态方法wf_gmap :: check_wp_footer()

表示函数check_wp_footer不是静态方法,所以你不能像这样调用