【问题标题】:Multiple API Calls in a Class一个类中的多个 API 调用
【发布时间】:2016-04-04 22:20:42
【问题描述】:

我正在尝试发出多个 API 请求,我必须在一个类中的不同函数中发出请求,如下所示:

class exampleClass
{    
  function callFunction1 () {
    // stuff that makes a call
    return $json;
  }

  function printStuffOut() {
    $jsonStuff = $this->callFunction1();
    $$jsonStuff->{'result'}[0]->{'fieldName'};
  }

  function printStuffOut2() {
    $jsonStuff = $this->callFunction1();
    $jsonStuff->{'result'}[0]->{'fieldName'};
  }
}

我是在进行两个单独的 API 调用吗?

如果我是,有没有办法将该 API 调用信息存储在一个数组中,然后在我的类中的所有其他函数中使用该数组?

【问题讨论】:

    标签: php arrays api scope


    【解决方案1】:

    回答第一个问题:是的,每次调用该方法时,它都会再次执行其所有定义。

    回答第二个问题:是的,所谓的成员属性。您可以在此处的 PHP 手册中阅读它们:PHP Manual: Properties

    【讨论】:

      【解决方案2】:

      您正在进行两次 API 调用,但您不必这样做。

      您可以将调用的内容放入类中默认值为NULL 的成员变量中,如果需要,您可以在进行API 调用之前检查该成员变量是否为NULL。例如;

      class exampleClass
      {
          private $api_json = NULL;
      
          private function call_api()
          {
              if(is_null($this->api_json))
              {
                  $json = // result of api call;
                  $this->api_json = $json;
              }
      
              return $this->api_json;
          }
      
          public function printStuffOut() {
              $jsonStuff = $this->call_api();
              $jsonStuff->{'result'}[0]->{'fieldName'};
          }
      
          public function printStuffOut2() {
              $jsonStuff = $this->call_api();
              $jsonStuff->{'result'}[0]->{'fieldName'};
          }
      }
      

      【讨论】:

        【解决方案3】:

        您可以使用以下类同时/即时/一次实现多个API。

        Click here 上课。

        怎么用?

        第 1 步:获取对象。

        //SANI: GET DATA    
        $obj = new multiapi();
        

        第 2 步:发出多个 GET 请求。

        $obj->data = array(YOUR_URL_1,YOUR_URL_2, OUR_URL_3);
        $result = $obj->get_process_requests();
        print_r($result);
        

        第 3 步:发出多个 HTTP POST 请求。

        //SANI: Request with params only
        $obj->data[0]['url']             = 'YOUR_URL_ONE';
        $obj->data[0]['post']                = array();
        $obj->data[0]['post']['param_1']     = 'param_value_1';
        $obj->data[0]['post']['param_2']     = 'param_value_2';
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-01
          • 2022-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-31
          • 2019-07-26
          相关资源
          最近更新 更多