在类中定义变量并在函数中使用它
问题描述:
我在学习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;
,我不知道什么是地狱,我虽然笑想在那里。
任何帮助表示赞赏谢谢:)
答
尝试
function apiCall($params)
{
echo $this->baseUrl;
}
我相信你在呼唤这个代码像这样?
$rs = new RS;
$rs->apiCall($params);
在PHP中,类属性需要以$this
作为前缀。当您使用self
时,唯一的例外是static methods和class constants。
答
function apiCall($params)
{
echo $this->baseUrl;
}
您可以像这样访问类变量int方法。 当您使用$this->baseUrl = $baseUrl;
你有一个局部变量$baseUrl
这可能是NULL更改类变种$baseUrl
的价值 这就是为什么你没有得到任何值回
答
试试这个:
class C
{
public $v = 'Hello, world!';
function printHello()
{
echo $this->v; // "Hello, world!"
}
}
$obj = new C();
$obj->printHello();
嗨,当我这样做我得到这个错误:致命的错误:无法访问第9行C:\ xampp \ htdocs \ RS_class \ rs.class.php中的空属性。 – Josh 2010-03-25 16:23:44
Nevermind,这是我的错误。谢谢:) – Josh 2010-03-25 16:25:52
当我在函数中使用'$ this'时,我得到这个错误:'当不在对象上下文中时使用$ this' – mrid 2017-01-11 19:34:18