类内的PHP调用函数

时间:2015-11-18 作者:Nazar

我正在编写自己的php类,该类中有多个函数。类似这样:

class JSON_API_Hello_Controller {

    public function test_cat(){
        global $json_api;

        $posts = $json_api->introspector->get_posts(array( \'cat\' => 3));
        return $this->posts_object_result_bycat($posts);
    }

    public function test_cat1() {
        global $json_api;

        $posts = $json_api->introspector->get_posts(array( \'cat\' => 2));
        return $this->posts_object_result_bycat($posts);
    }

    protected function posts_object_result_bycat($posts) {
        global $wp_query;

        return array(
            \'count\' => count($posts),
            \'pages\' => (int) $wp_query->max_num_pages,
            \'posts\' => $posts
        );
    }

    public function mix_cat(){

        $first_cat = $this->test_cat();
        $second_cat = $this->test_cat1();
        $json1 = json_decode($first_cat , true);
        $json2 = json_decode($second_cat, true);
        $final_array = array_merge($json1, $json2);
        // Finally encode the result back to JSON.
        $final_json = json_encode($final_array);
    }

} 
我试过这样的东西。我想打电话给test_cat()test_cat1() 其他函数中的函数,如mix_cat() 在同一个类中。两种功能(test_cat() &;test_cat1()) 返回json对象。两个返回的json对象都将加入mix_cat() 作用请建议我如何拨打testcat() &;test_cat1() 中的函数mix_cat() 并将这两个函数的结果mix_cat() 作用

1 个回复
SO网友:bueltge

您可以通过以下方式合并这两个json对象array_merge. 但必须先解码到数组。在下面的示例中,这是一个单源函数。这应该得到合并的json对象。

示例函数,可用于mix_cat()方法

function mergeToJSON( $obj1, $obj2 ) {

    $json1 = $this->test_cat();
    $json2 = $this->test_cat1();

    if ( $json1 === FALSE || $json2 === FALSE ) {
        return;
    }

    $array1 = json_decode( $json1, TRUE );
    $array2 = json_decode( $json2, TRUE );
    $data = array_merge( $array1, $array2 );

    return json_encode( $data );
}

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请