6

より多くの OOP プロジェクトのコーディングを開始できるように、PHP クラスを学習しようとしています。学習を支援するために、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);

$thisPHP では、クラス属性にプレフィックスを付ける必要があります。唯一の例外は、 を使用する場合の静的メソッドクラス定数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 メソッドにアクセスできます。使用する場合$this->baseUrl = $baseUrl; クラス var の値を、おそらく NULL で$baseUrlあるローカル var$baseUrlで変更します。そのため、値が返されないのはなぜですか

于 2010-03-25T16:23:20.157 に答える