首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php -在任何对null上的成员函数的调用中出现未捕获错误

php -在任何对null上的成员函数的调用中出现未捕获错误
EN

Stack Overflow用户
提问于 2018-06-18 01:51:15
回答 1查看 663关注 0票数 0

在尝试使用WordPress中的几个核心函数/类作为独立函数时,我遇到了致命/未捕获的错误。

E_ERROR: Uncaught Error: Call to a member function suppress_errors() on null in C:\Vip\_tmp\wp-statistics\includes\option.php:9

索引:

代码语言:javascript
复制
@include 'wp-db.php';
@include 'option.php';

查看最新的wp-db.php code here.

option.php

代码语言:javascript
复制
<?php

function get_option( $option, $default = false ) {
    global $wpdb;

    $option = trim( $option );
    if ( empty( $option ) )
        return false;

    // $suppress = $wpdb->suppress_errors();
    $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) );
    $wpdb->suppress_errors( $suppress );
    if ( is_object( $row ) ) {
        $value = $row->option_value;
    } else {
        /** This filter is documented in wp-includes/option.php */
        return apply_filters( "default_option_{$option}", $default, $option, $passed_default );
    }
}

无论option.phpwp-db.php调用哪个成员函数,都会抛出上述错误。

EN

回答 1

Stack Overflow用户

发布于 2018-06-18 02:29:43

有两种方法可以解决这个问题:

A.加载WordPress环境

正如vstmthe comment中建议的那样,一种选择是加载WordPress的其余部分,这将涉及到包括wp-load.phpwp-config.php.

B.缺少$wpdb声明

下面列出了修复错误消息所需的缺失语句:

索引

代码语言:javascript
复制
require_once 'sources/constants.php';
require_once 'wp-db.php';
$wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
require_once 'option.php';

sources/constants.php

代码语言:javascript
复制
<?php
// define constants here
define('DB_HOST', 'YOUR HOST');
define('DB_USER', 'YOUR USER');
define('DB_PASSWORD', 'YOUR PASSWORD');
define('DB_NAME', 'YOUR DB');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50899119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档