PHP:无法调用公共函数

PHP:无法调用公共函数,php,function,class,singleton,Php,Function,Class,Singleton,我有一个dashboard.php页面,它创建了一个商家仪表板,显示商家提交的交易。我只是想通过检查交易是否为建议交易来区分交易类型: ... while ($deals->have_posts()) : $deals->the_post(); $suggested_deal = SA_Post_Type::get_instance( $post->ID ); $boolsuggesteddeal = $suggested_deal->is_suggest

我有一个dashboard.php页面,它创建了一个商家仪表板,显示商家提交的交易。我只是想通过检查交易是否为建议交易来区分交易类型:

...
while ($deals->have_posts()) : $deals->the_post();
    $suggested_deal = SA_Post_Type::get_instance( $post->ID );
    $boolsuggesteddeal = $suggested_deal->is_suggested_deal();
    ...
但是,is_suggered_deal()行导致页面不显示超过该行的内容

SA_POST_类型类别概述如下:

class SA_Post_Type extends Group_Buying_Deal {

...

public static function get_instance( $id = 0 ) {
    if ( !$id ) {
        return NULL;
    }
    if ( !isset( self::$instances[$id] ) || !self::$instances[$id] instanceof self ) {
        self::$instances[$id] = new self( $id );
    }
    if ( self::$instances[$id]->post->post_type != parent::POST_TYPE ) {
        return NULL;
    }
    return self::$instances[$id];
}

...

public function is_suggested_deal() {
    $term = array_pop( wp_get_object_terms( $this->get_id(), self::TAX ) );
    return $term->slug == self::TERM_SLUG;
}

...
既然类和函数都是公共的,为什么我不能调用函数呢?任何帮助都将不胜感激


编辑:我不知道如何在不向所有站点用户显示错误的情况下获取错误报告,我在一个实时站点上。我尝试创建一个sau Post_Type()的实例,但仅此一点就导致页面无法加载该行之后的任何内容。

您尚未创建该类的实例,请按以下方式操作

$SA_Post_Type = new SA_Post_Type();
然后您就可以访问该功能

$boolsuggesteddeal = $SA_Post_Type->is_suggested_deal();

由于is_Suggestive_deal不是一个静态函数,因此必须首先创建SA_Post_类型类的新实例

$sa_post_type = new SA_Post_Type();
$boolsuggesteddeal = $sa_post_type->is_suggested_deal();

希望这能有所帮助。

您是否对
self::$instances
进行了
var\u dump
转储?首先,您是否有错误报告?其次,您能否确认
$suggered\u deal
实际上是一个实例,并且不为空?这一行肯定有效:$suggered\u deal=SA\u Post\u Type::get\u instance($Post->ID);谢谢你,但这似乎不起作用。我不知道为什么,但构造函数本身似乎阻止了页面在那一行之后显示任何内容。谢谢,但它似乎不起作用。我不知道为什么,但构造函数本身似乎阻止页面在该行之后显示任何内容。