Php 从';它是另一个类的依赖项?

Php 从';它是另一个类的依赖项?,php,class,static,scope,Php,Class,Static,Scope,参加以下测试课程: class A { public static $number = 1; } class B { protected $a; public function __construct(A $a) { $this->a = $a; } public function getStatic() { echo $this->a::$number; } } $b = new B(new A

参加以下测试课程:

class A {
    public static $number = 1;
}

class B {
    protected $a;

    public function __construct(A $a) {
        $this->a = $a;
    }

    public function getStatic() {
        echo $this->a::$number;
    }
}

$b = new B(new A);
$b->getStatic();
应该返回1吗?我不确定,我正在尝试在一个类中的静态变量作为另一个类的依赖项被注入之后访问它

原因是,我有一个异步调用x次的类,但它需要一个全局静态,为10个类实例更新。我不需要相同变量的10个实例

假设有一个交互变量作为静态变量,它会被每个类更新,并保持一个变量。它不是每个类一个迭代器


我做错什么了吗?我遇到了可怕的语法错误,意外的“::”(T_PAAMAYIM_NEKUDOTAYIM)在类而不是对象上调用static

class A {
        public static $number = 1;
}

class B {
        protected $a;

            public function __construct(A $a) {
                $this->a = $a;
            }

            public function getStatic() {
                $class = get_class($this->a);
                echo $class::$number
            }
}

$b = new B(new A);
$b->getStatic();
或在类A中使用方法

class A {
        public static $number = 1;

        public function getNumber()
        {
            return static::$number;
        }
}

class B {
        protected $a;

            public function __construct(A $a) {
                $this->a = $a;
            }

            public function getStatic() {
                echo $this->a->getNumber();
            }
}

$b = new B(new A);
$b->getStatic();

我更喜欢稍后。

您不必创建对象来访问静态属性或方法


仅仅访问/回传B类中的A::number是不起作用的?

如果你想发表评论,请提高你的声誉。如果你想发布答案,让它看起来如此。不要因为知名度低而发表评论作为答案——你的声誉甚至会因此而降低。这是这个问题的正确答案。然而我相信我的问题与此无关,但对于任何有这个问题的人来说,这是一条路要走。