如何在命名空间中引用静态类变量?

时间:2015-12-09 21:59:08

标签: php static namespaces

在我的php类Patient中,我有一个静态方法,init是一些静态类变量,工作正常。我这样做:

private static $request;

public static function init() {
    self::$request = new Something();
}

但是当我在文件的顶部添加一个命名空间时,由于某种原因它会在这行上死掉,这让我很困惑。在命名空间内有没有一种特殊的方法来调用静态变量?

1 个答案:

答案 0 :(得分:1)

由于您的代码在全局命名空间中工作,但在自定义命名空间中失败时,您需要在使用外部类时提供完全限定的类名。因此,在这种情况下,只需将代码更改为:

public static function init() {
    self::$request = new \Something();
}

如果由于某些原因这不能解决您的问题,那么您至少可以通过(暂时)将self::$request =更改为$temp =来排除静态变量与问题相关并观察问题仍然存在。