Определение переменной в классе и использование его в функциях

Я пытаюсь изучить классы PHP, таким образом, я могу начать кодировать больше проектов ООП. Чтобы помочь мне учиться, я создаю класс, который использует API Rapidshare. Вот мой класс:

<?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() methid, я не знаю то что, черт возьми, я думал там хотя lol.

Любая справка ценится спасибо :)

6
задан Josh 25 March 2010 в 16:19
поделиться

3 ответа

Попробуйте

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 .

13
ответ дан 8 December 2019 в 16:00
поделиться

Попробуйте следующее:

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

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

$obj = new C();
$obj->printHello();
2
ответ дан 8 December 2019 в 16:00
поделиться
function apiCall($params)
{
    echo $this->baseUrl;
}

Вы можете получить доступ к методам int переменных класса следующим образом. Когда вы используете $ this-> baseUrl = $ baseUrl; Вы изменяете значение класса var $ baseUrl на локальную переменную $ baseUrl , которая, вероятно, имеет значение NULL Вот почему вы не получаете никакого значения назад

0
ответ дан 8 December 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: