在类中定义变量并在函数中使用它

时间:2010-03-25 16:19:23

标签: php api variables class rapidshare

我正在尝试学习PHP类,所以我可以开始编写更多的OOP项目。为了帮助我了解我正在构建一个使用Rapidshare API的类。这是我的班级:

<?php

class RS
{
    public $baseUrl = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=';

    function apiCall($params)
    {
        echo $baseUrl;
    }
}

?>

$params将包含一组密钥对值,如下所示:

$params = array(
    'sub'   =>  'listfiles_v1',
    'type'  =>  'prem',
    'login' =>  '746625',
    'password'  =>  'not_my_real_pass',
    'realfolder'    => '0',
    'fields'    => 'filename,downloads,size',
    );

稍后将附加到$baseUrl以生成最终请求网址,但我无法在我的apiCall()方法中显示$ baseUrl。我尝试过以下方法:

var $baseUrl = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=';

$baseUrl = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=';

private $baseUrl = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=';

甚至在我的$this->baseUrl = $baseUrl; methid中尝试apiCall(),我不知道我到底在想什么,虽然大声笑。

感谢任何帮助,谢谢:)

3 个答案:

答案 0 :(得分:13)

尝试

class RS {
  public $baseUrl = 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=';

  function apiCall($params) {
    echo $this->baseUrl;
  }
}

我相信你这样称这个代码?

$rs = new RS;
$rs->apiCall($params);

类属性需要在PHP中以$this为前缀。使用self时,唯一的例外是static methodsclass constants

答案 1 :(得分:2)

试试这个:

class C
{
    public $v = 'Hello, world!';

    function printHello()
    {
        echo $this->v;   // "Hello, world!"
    }
}

$obj = new C();
$obj->printHello();

答案 2 :(得分:0)

function apiCall($params)
{
    echo $this->baseUrl;
}

您可以像这样访问类变量int类。 使用$this->baseUrl = $baseUrl;时 您使用本地var $baseUrl更改类var $baseUrl的值,该值可能为NULL 这就是为什么你没有得到任何价值