【发布时间】:2015-04-17 11:58:55
【问题描述】:
我目前对静态和 setters/Getters ins php 有点困惑。
我的代码如下:
class Test{
private static $name;
public static function setName( $value ){
self::$name = $value //Works fine
}
public static function getName(){
return self::$name;
}
function something(){
self:: setName('nameOne');
}
public static function dostuff(){
$test = self::getName(); //var_dump returns NULL
}
}
如何在函数dostuff 中获取$name 的值,它必须是静态的?
【问题讨论】:
-
有什么问题?
-
您的函数
something()无效。你不能使用$this->setName(),你应该使用self::SetName()。要让您在dostuff()中获得价值,只需将其称为$myname = self::$name -
您可以使用
self来引用类属性。因此,在您的情况下,它将是:self::name。你也不能在静态上下文中$this。 -
老实说,您似乎并不真正了解
static的作用。为什么这些方法需要是静态的?! -
函数必须是静态的,因为它是这样给出的。如上所示,我更新了代码,但我仍然无法获取我存储的值。