我正在尝试学习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
以生成最终请求网址,但我无法在我的apiCall()
方法中显示$ baseUrl。我尝试过以下方法:
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;
methid中尝试apiCall()
,我不知道我到底在想什么,虽然大声笑。
感谢任何帮助,谢谢:)
答案 0 :(得分:13)
尝试
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);
类属性需要在PHP中以$this
为前缀。使用self
时,唯一的例外是static methods和class constants。
答案 1 :(得分:2)
试试这个:
class C
{
public $v = 'Hello, world!';
function printHello()
{
echo $this->v; // "Hello, world!"
}
}
$obj = new C();
$obj->printHello();
答案 2 :(得分:0)
function apiCall($params)
{
echo $this->baseUrl;
}
您可以像这样访问类变量int类。
使用$this->baseUrl = $baseUrl;
时
您使用本地var $baseUrl
更改类var $baseUrl
的值,该值可能为NULL
这就是为什么你没有得到任何价值