2010-03-25 119 views
5

我在學習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='; 

即使在我apiCall() methid試圖$this->baseUrl = $baseUrl;,我不知道什麼是地獄,我雖然笑想在那裏。

任何幫助表示讚賞謝謝:)

回答

12

嘗試

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

我相信你在呼喚這個代碼像這樣?

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

在PHP中,類屬性需要以$this作爲前綴。當您使用self時,唯一的例外是static methodsclass constants

+0

嗨,當我這樣做我得到這個錯誤:致命的錯誤:無法訪問第9行C:\ xampp \ htdocs \ RS_class \ rs.class.php中的空屬性。 – Josh 2010-03-25 16:23:44

+0

Nevermind,這是我的錯誤。謝謝:) – Josh 2010-03-25 16:25:52

+0

當我在函數中使用'$ this'時,我得到這個錯誤:'當不在對象上下文中時使用$ this' – mrid 2017-01-11 19:34:18

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

您可以像這樣訪問類變量int方法。 當您使用$this->baseUrl = $baseUrl; 你有一個局部變量$baseUrl這可能是NULL更改類變種$baseUrl的價值 這就是爲什麼你沒有得到任何值回

2

試試這個:

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

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

$obj = new C(); 
$obj->printHello(); 
相關問題