有一个php类,我喜欢在其中更改变量,但我无法实现。 班级:
class ShopCart
{
private $maincurrency = 'USD';
private function set_Currency() {
$maincurrency = 'GBP';
return $maincurrency;
}
}
这不起作用。即使我把它公之于众。我做错了什么?
答案 0 :(得分:4)
您必须在方法正文中使用$this->maincurrency
。您当前的代码创建并设置局部变量,而不是成员。
答案 1 :(得分:1)
您需要$this
:
class ShopCart {
private $maincurrency = 'USD';
private function set_Currency() {
$this->$maincurrency = 'GBP';
return $this->$maincurrency;
}
}
否则,您将在函数本地创建一个新变量,并使用它。
The manual does actually tell you this already:
在类方法中,属性,常量和方法可以是 使用
$this->property
形式访问(其中property
是名称 属性)除非访问的是静态属性 静态类方法的上下文,在这种情况下使用它进行访问 表格self::$property
。
文档是你的朋友; 在询问之前请先咨询。
您可能还想考虑不 return
来自setter的任何内容,尽管这取决于您。这样做有一些优点,即使它不是PHP中的常规内容。
答案 2 :(得分:0)
class ShopCart {
private $maincurrency = 'USD';
private function setCurrency() {
$this->maincurrency = 'GBP';
}
}
答案 3 :(得分:0)
将$maincurrency = 'GBP';
更改为$this->maincurrency = 'GBP';
,
还有return $this->maincurrency;