更改类,私有或公共字符串

时间:2011-10-18 17:27:03

标签: php class private public

有一个php类,我喜欢在其中更改变量,但我无法实现。 班级:

class ShopCart 
{
    private $maincurrency = 'USD';

    private function set_Currency() {
        $maincurrency = 'GBP';
        return $maincurrency;
    }
}

这不起作用。即使我把它公之于众。我做错了什么?

4 个答案:

答案 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;