2010-03-25 14 views
5

PHP sınıflarını öğrenmeye çalışıyorum, böylece daha fazla OOP projesi kodlamaya başladım. Bana yardım etmek için Rapidshare API'sini kullanan bir sınıf yapıyorum. Daha sonra $baseUrl eklenecektirBir sınıfta bir değişken tanımlamak ve işlevlerde kullanmak

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

nihai isteği URL'sini yapmak, ama yapamıyorum:

<?php 

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

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

?> 

$params böyle, anahtar çifti değerler kümesi içerir: İşte benim sınıf var apiCall() yöntemimde görünmesi için $ baseUrl olsun.

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 ben cehennem lol olsa orada ne düşündüğünü bilmiyorum, benim apiCall() methid içinde $this->baseUrl = $baseUrl; çalıştı: Ben aşağıdaki çalıştılar.

Herhangi bir yardım takdir teşekkür :)

cevap

12

seni o kadar gibi bu kodu aradığınız güven

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

deneyin?

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

Sınıf nitelikleri PHP'de $this öneki gerekir. Tek istisnalar, self'u kullanırken static methods ve class constants'dur.

+0

Hi, ne zaman Bu hatayı aldığımda: 'Fatal error: C: \ xampp \ htdocs \ RS_class \ rs.class.php satırında boş özelliğe erişilemiyor ' – Josh

+0

Nevermind, bu benim bölümümde bir hataydı. Bir fonksiyon içinde '$ this' kullandığımda teşekkürler :) – Josh

+0

, ben bu hatayı alıyorum: '$ this this nesnesini bağlamında kullanırken ' – mrid

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

Bunun gibi sınıf değişkenlerine int yöntemlerine erişebilirsiniz. Eğer herhangi bir değer almıyorsanız neden sen $this->baseUrl = $baseUrl; Muhtemelen NULL'dur yerel var $baseUrl ile sınıf var $baseUrl değerini değiştirmek kullandığınızda geri

2

bu deneyin That:

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

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

$obj = new C(); 
$obj->printHello(); 
İlgili konular