Использование того же объекта класса в другой функции - PullRequest
0 голосов
/ 06 января 2020

Мой код такой

publi c function function1 () {

$ client = new Google_Client ();

$ client-> setAccessToken (' Некоторое значение ');

}

publi c funnction function2 () {

// Здесь я хочу получить токен, используя $ client-> getAccessToken ()

}

Как можно использовать один и тот же экземпляр класса из function1 в function2? Поэтому я могу использовать $ client-> getAccessToken () в function2

1 Ответ

0 голосов
/ 06 января 2020

Простое решение использовать global

<?php

    $client;

    function function1(){
        global $client;
        $client = new Google_Client();
        $client->setAccessToken('Some value');
    }

    function function2(){
        global $client;
        $token=$client->getAccessToken();
    }
?>

Это просто, но не рекомендуется. Никогда не стоит использовать глобальные переменные, мы должны избегать этого как можно дольше. Значит, должен быть какой-то другой путь, верно? ну да, используйте class

<?php

class ForClient {

    private $client;

    function __construct(){
        $client = new Google_Client();
    }

    public function setToken($val){
        $client->setAccessToken($val);
    }

    public function getToken(){
        $token=$client->getAccessToken();
        return $token;
    }
 }

$token_handler = new ForClient(); 
$token_handler->setToken(25);
$token=$token_handler->getToken();
?>

Я изменил имена функций, чтобы сделать код более читабельным.

...