【问题标题】:Using same class object in another function在另一个函数中使用相同的类对象
【发布时间】:2020-01-06 12:51:37
【问题描述】:

我的代码是这样的

公共函数function1(){

$client = new Google_Client();

$client->setAccessToken('一些值');

}

公共函数function2(){

//这里我要使用$client->getAccessToken()获取token

}

如何在函数 2 中使用与函数 1 相同的类实例?所以我可以在function2中使用$client->getAccessToken()

【问题讨论】:

    标签: function class using


    【解决方案1】:

    简单解决方案使用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();
    ?>
    

    我更改了函数名称以使代码更具可读性。

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多