【问题标题】:Fatal error: Access to undeclared static property: StaticMethod::$a [closed]致命错误:访问未声明的静态属性:StaticMethod::$a [关闭]
【发布时间】:2015-12-28 18:44:31
【问题描述】:
class StaticMethod
{

public $a=10;

public $b=20;

    public static function sum(){
        return (self::$a+self::$b);
    }
}

echo StaticMethod::sum();

【问题讨论】:

  • 您声明了 $a 没有 static。你期待什么?

标签: php


【解决方案1】:

您将 sum 方法声明为静态,但您没有将变量 $a$b 声明为静态。

class StaticMethod
{
    public static $a = 10;
    public static $b = 20;

    public static function sum() {
        return (self::$a + self::$b);
    }
}

echo StaticMethod::sum(); //returns 30

【讨论】:

  • 如果我想要这些变量,即不是静态的,该怎么办。但是想在函数 sum 中访问它们
  • 您不能从静态方法访问非静态属性。请参阅此答案 - stackoverflow.com/a/15118512/864233 - 了解更多详情。
  • 非常感谢。这解决了我的问题。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多