6

我正在尝试学习 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最终请求 URL,但我无法让 $baseUrl 出现在我的apiCall()方法中。我尝试了以下方法:

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;了我的apiCall()方法,我不知道我到底在想什么,尽管哈哈。

任何帮助表示感谢:)

4

3 回答 3

14

尝试

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);

类属性需要$this在 PHP 中加上前缀。使用. _ _self

于 2010-03-25T16:22:21.423 回答
3

试试这个:

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

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

$obj = new C();
$obj->printHello();
于 2010-03-25T16:25:07.453 回答
0
function apiCall($params)
{
    echo $this->baseUrl;
}

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

于 2010-03-25T16:23:20.157 回答