将变量传递给php类

时间:2011-05-28 12:18:28

标签: php variables oauth

我是php的初学者。并尝试与Oauth合作。但这不是重点。重点是:我有一个Oauth类,有四个函数可以返回这样的URL:

class tOauth{
    ......
    function accessTokenURL()  {
        return 'http://api.twitter.com/oauth/access_token'; 
    }  
    function authenticateURL() { 
        return 'http://api.twitter.com/oauth/authenticate'; 
    } 
    ......
}

这很好用。但现在我希望这些功能是通用的,这样它们适用于任何社交网站。这意味着我必须通过danymically传递所有网址并在运行时返回它们。所以我提出这样的事情:

class tOauth{
    ....
    public $accessTokenURL,$authenticateURL;
    function accessTokenURL()  {
        return $this->accessTokenURL; 
    }  
    function authenticateURL() { 
        return $this->authenticateURL; 
    } 
    ....
}

在运行时我称之为:

$oauth=new Oauth(key,secret);
$oauth->accessTokenURL='http://www.facebook.com/oauth/access_token';
$oauth->authenticateURL='http://www.facebook.com/oauth/authenticate';
$token=$oauth->requestToken($someurl);    

但出于某种原因,这似乎不起作用。我没有改变任何其他东西。似乎我无法在日常情况下分配这样的变量。有没有人知道可能是什么问题?感谢任何提示。

更新:可以在此处找到整个示例代码:https://github.com/abraham/twitteroauth/blob/master/twitteroauth/twitteroauth.php

2 个答案:

答案 0 :(得分:0)

更新:您的代码未显示有关requestToken()方法的任何详细信息。以下解决方案可让您访问令牌。

您根据代码阅读了未设置的内容。用

替换最后一行
$token=$oauth->accessToken($someurl);

它适用于accessToken

还要考虑inheritance,它允许您在tOauth类中存储公共指令,而服务特定的指令在从其继承的单独类中存储(例如。Twitter_Oauth可以从您的{继承] {1}}类,并且从一开始就将特定URL设置为默认值,而无需每次都设置它们。

答案 1 :(得分:0)

为什么不为类变量编写getter和setter方法?

您已经拥有返回accessTokenURL和authentificateURL的方法。

我相信这可行:

        class tOauth{
    ....
    public $accessTokenURL,$authenticateURL;
    function accessTokenURL()  {
        return $this->accessTokenURL; 
    }  
    function authenticateURL() { 
        return $this->authenticateURL; 
    }
    function set_accessTokenURL($token)
    {
        $this->accessTokenURL = $token;
    }
    function set_authenticateTokenURL($token)
    {
       $this->authenticateTokenURL = $token;
    }
    ....
    }