Несколько вызовов API в классе

Я пытаюсь сделать несколько запросов 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 здесь: Руководство PHP: Свойства

Вы делаете два вызова API, но вам это не нужно.

Вы можете поместить содержимое вызова в переменную-член в классе со значением по умолчанию NULL , и если вы хотите, вы можете проверить, является ли эта переменная-членом NULL перед вызовом API. Например;

 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'}; } } 

Вы можете использовать следующий класс для одновременного создания / одновременного доступа сразу нескольких API одновременно.

Нажмите здесь, чтобы получить класс.

Как это использовать?

Шаг 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';