2

是否可以在 php 的构造函数中更改静态类属性的默认值?

class Test { 
  public static $property = 'default';

  public function __construct() {
    self::$property = 'new value';
  }       
}

上面的代码没有这样做。提前致谢!

编辑

我知道我可以在课堂外更改值

Test::$property = 'new value';
echo Test::$property;

我想知道我是否可以在类构造函数中做到这一点。

4

3 回答 3

2

在 PHP 5.3 中,您可以使用后期静态绑定。

在您的代码中将“self”替换为“static”:

class Test { 
  public static $property = 'default';

  public function __construct() {
    static::$property = 'new value';
  }       
}

它会起作用的;)

于 2013-10-29T15:02:05.027 回答
0

你忘了一个双点:

self::$property = 'new value';
于 2013-10-29T14:53:32.480 回答
0

这对我有用。

class Test { 
  public static $property = 'default';
  public function __construct() {
     echo self::$property = 'new value'; // for EXample echo val of property
  }       
}
//When create a new object of class it shows / Assigns value of static property

$test = new Test();
echo Test::$property;
于 2013-10-29T14:58:27.680 回答