你能在php中静态访问非静态类属性吗?

时间:2016-04-18 15:04:39

标签: php static

我们说我有以下课程:

class A {
    public $Foo;
    public $Foo2;

    public static function $Current;

    public static function setCurrent($Foo, $Foo2) {
       self::$Current=new A($Foo, $Foo2);
    }

    public function __construct($Foo, $Foo2) {
       $this->Foo=$Foo;
       $this->Foo2=$Foo2;
    }

}

如果我写下面的代码:

  A::setCurrent(1,2);

是否有任何可能的方式,以后使用A::$Foo,并获取A::$Current->Foo的内容?

1 个答案:

答案 0 :(得分:0)

您的代码有一些错误。

public static setCurrent应为public static function setCurrentpublic __construct应为public function __construct

您无法使用A::$Foo,因为这不是静态属性。但你可以致电A::$Current->Foo

但是我认为班级的设计很差。你应该使用封装。我不明白你为什么要创建一个实例然后把它放在一个类属性中。