получить значения из одного класса в другой класс - php - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть два класса в php.класс A и класс B. В классе A у меня есть несколько функций, и я хочу вызвать функции класса A в классе B и получить значения в классе B. Вот классы:

Класс A:

<?php
require_once './vendor/autoload.php';
use GuzzleHttp\Client;

class A {
    /**
     * Undocumented variable
     *
     * @var Client
     */
    protected $client;
    public function __construct()
        {
                $apikey = '000000000000000';
                $this->client = new Client([
                'base_uri'=>'https://api.omnivore.io/',
                'headers'  => [
                'Api-Key'=>$apikey,
                'Content-Type' => 'application/json',
                            ]
                ]);

        }
    public function getMerchant(){
        $response = $this->client->request('GET','locations');
        $output = $response->getBody()->getContents();
        $merchants = json_decode($output, true);   
    }

    public function getMenu(){
        $response = $this->client->request('GET','locations/iE7EBzbT/menu');
        $output = $response->getBody()->getContents();
        $menu = json_decode($output, true); 

    }

} 

Класс B:

<?php

    class B
    {
        protected $client;
        public function index() {
            $apiClient = new A();
            $app = $apiClient->getMerchant();
           print_r($app) ;
        }

    }
    ?>

Итак, вопрос в том, как я могу получить значения продавца в классе B в индексной функции.Любая помощь будет очень ценной.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

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

Этот принцип будет влиять на то, как многие классы и объекты связаны друг с другом.Например, когда вы расширяете класс, подкласс наследует все открытые и защищенные методы от родительского класса.

Пожалуйста, обратитесь по ссылке: - https://php5 -tutorial.com / classes / наследование /

Класс B:

<?php

    class B extends A
    {
        protected $client;
        public function index() {
            $apiClient = new A();
            $app = $apiClient->getMerchant();
           print_r($app) ;
        }

    }

?>

0 голосов
/ 15 февраля 2019

Нет return в getMerchant().В этом случае $app = $apiClient->getMerchant(); не имеет смысла.

Возможно, вы захотите сделать

класс A

public function getMerchant(){
    $response = $this->client->request('GET','locations');
    $output = $response->getBody()->getContents();
    $merchants = json_decode($output, true);
    return $merchants; // <---- this
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...