Bir sınıfta bir değişken tanımlama ve fonksiyonları kullanarak

2 Cevap php

Ben daha fazla cepten projeler kodlama başlamadan böylece PHP sınıfları öğrenmeye çalışıyorum. Bana Rapidshare API kullanan bir sınıf inşa ediyorum öğrenmenize yardımcı olacak. İşte benim sınıf bulunuyor:

<?php

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

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

?>

: $params bu gibi anahtar çifti bir değerler kümesini içerecek

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

Daha sonra $baseUrl son isteği URL yapmak için eklenecek, ama benim apiCall() yönteminde görünmesini $ baseURL alınamıyor hangi. Ben aşağıdakileri denedim:

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=';

Ve hatta $this->baseUrl = $baseUrl; Benim apiCall() methid içinde, ben lol olsa orada düşünüyordum ne oluyor bilmiyorum çalıştı.

Herhangi bir yardım sayesinde takdir :)

2 Cevap

Denemek

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

Ben bunu gibi bu kod arıyorsun güven?

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

Sınıf özellikleri PHP $this ile öneki gerekir. Tek istisna kullandığınız zaman static methods ve class constants olarak self.

Bu deneyin:

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

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

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