如何在PHP中引用静态常量成员变量

12

我有一个带有成员变量的类。 当从静态上下文调用该类时,PHP中访问成员变量的语法是什么?

基本上,我想调用一个类方法(但不创建新对象),但是当调用类方法时,我想初始化一些需要在不同类方法之间共享的静态常量变量。

如果有更好的方法,请与我分享(我是PHP新手)

例如:

class example
{
    var $apple;
function example()//构造函数 { example::$apple = "red"; //这会导致解析错误 }
}
2个回答

17

为了简洁起见,我只提供PHP 5版本:

class Example
{
    // Class Constant
    const APPLE = 'red';

    // Private static member
    private static $apple;

    public function __construct()
    {
        print self::APPLE . "\n";
        self::$apple = 'red';
    }
}

2
"Example::$apple = 'red';" 只有在 Example 类的范围之外才能正常工作。 - camomileCase
谢谢Chris。self::除了将变量声明为私有静态变量外,正是我正在寻找的 :) - justinl

2

基本上,我想调用一个类方法(但不创建新对象),但当调用类方法时,我希望一些静态常量变量被初始化,并且需要在不同的类方法之间共享。

可以尝试这样做:

class ClassName {
  static $var;

  function functionName() {
    echo self::$var = 1;
  }
}

ClassName::functionName();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接